1

我有一堆存储在 Amazon s3 存储桶中的深度缩放图像,我有一个网页,用 Open Seadragon 天珠查看器显示它们。我可以显示图像,但无法下载;我收到了安全错误,我的画布被污染了。

我在存储桶中设置了 CORS 配置:

<?xml version="1.0" encoding="UTF-8"?>
<CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/">
    <CORSRule>
        <AllowedOrigin>*</AllowedOrigin>
        <AllowedMethod>GET</AllowedMethod>
        <MaxAgeSeconds>3000</MaxAgeSeconds>
        <AllowedHeader>Authorization</AllowedHeader>
    </CORSRule>
</CORSConfiguration>

这允许我显示图像(以前我的 OpenSeadragon 调用失败,因为没有 access-control-allow-origin 标头),但我的画布仍然受到污染。

我尝试在 seadragon 查看器中设置 crossOrigin 策略:

var viewer = OpenSeadragon({
        crossOrigin: "Anonymous",
        id: "databaseviewer",
        prefixUrl: "../../Scripts/openseadragon/images/",
        tileSources: url,
        maxZoomLevel: 20
    });

但这并没有改变任何东西。这是我的完整脚本:

var url = '@Model.ImageUrl';

var viewer = OpenSeadragon({
    crossOrigin: "Anonymous",
    id: "databaseviewer",
    prefixUrl: "../../Scripts/openseadragon/images/",
    tileSources: url,
    maxZoomLevel: 20
});

viewer.addHandler('open', function() {                  
    var downloadlink = document.getElementById("download");
    $(downloadlink).on("click", function() {
        var img = viewer.drawer.canvas.toDataURL("image/png");
        downloadlink.href = img;
        downloadlink.download = '@Model.DatabaseName';
    });
});
4

1 回答 1

0

根据API 文档,您应该将策略选项重命名为crossOriginPolicy.

于 2014-12-01T08:06:17.243 回答