Canvas 无法从受污染的画布下载图像;如何下载托管在Amazon s3存储桶中的Seadragon图像?

Canvas 无法从受污染的画布下载图像;如何下载托管在Amazon s3存储桶中的Seadragon图像?,canvas,download,cross-domain,cors,seadragon,Canvas,Download,Cross Domain,Cors,Seadragon,我有一堆存储在AmazonS3存储桶中的深度缩放图像,我有一个网页,用一个开放的Seadragon dzi查看器显示它们。我可以显示图像,但我无法下载;我得到了一个安全错误,我有一个污染的画布 我在存储桶中设置了CORS配置: <?xml version="1.0" encoding="UTF-8"?> <CORSConfiguration xmlns="http://s3.amazonaws.com/doc/2006-03-01/"> <CORSRule&

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

我在存储桶中设置了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>
但这并没有改变任何事情。这是我的完整脚本:

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';
    });
});
根据,您应该将策略选项重命名为crossOriginPolicy

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';
    });
});