0

TL;DR:如何使用 OpenSeadragon 发出跨域 AJAX 请求?

我正在使用 OpenSeadragon 显示来自网站的图像。我的 Seadragon 查看器使用如下测试 URL:

<script src="../../Scripts/openseadragon/openseadragon.js"></script>

<script>
var viewer = OpenSeadragon({
    id: "openseadragon1",
    prefixUrl: "../../Scripts/openseadragon/images/", 
    tileSources: "https://familysearch.org/dz/v1/TH-1971-27860-10353-27/image.xml?ctx=CrxCtxPublicAccess&session" // requires a DZI tile source
});
</script>

<div id="container2" style="float:left;">
    <div id ="openseadragon1" style="width:500px;height:500px;border:1px solid black;float:left;"></div>
</div>

所以我知道我的观众正在工作。我的问题是我需要的特定图像托管在没有“Access-Control-Allow-Origin”标头的站点上,因此我的 Ajax 请求被阻止。例如,当我使用此 URL 时:

http://66.img.americanancestors.org/e41de95d-6235-4581-b823-4887b50eb8ad.xml

(我可以在我的浏览器中访问它,当我在其中输入它时会下载一个 xml 文件),我在查看器中收到“No Access-Control-Origin-Header”错误和此错误:

海龙错误

我知道跨域请求,但是作为 OpenSeadragon 的新手,我不确定如何在我的 OpenSeadragon 函数中创建跨域请求。我知道 OpenSeadragon 有一个 CreateAJAXRequest() 函数,但我真的不明白如何实现它,我不确定这是否能解决我的问题。

4

2 回答 2

0

您的浏览器正确拒绝从未设置“Access-Control-Allow-Origin”的跨域源加载数据。三种可能的解决方案:

  • 复制 xml 并将其托管在您自己的站点上
  • 向您自己的站点发出请求,该站点充当代理并获取远程 xml 文件
  • 请让网站所有者为您设置 CORS 标头
于 2014-08-13T16:14:30.387 回答
0
  tileSources: url,
  ajaxWithCredentials : true,
于 2016-02-05T19:18:33.407 回答