首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >OpenSeadragon跨域Ajax请求

OpenSeadragon跨域Ajax请求
EN

Stack Overflow用户
提问于 2014-08-14 00:03:20
回答 2查看 1.2K关注 0票数 0

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

我正在使用OpenSeadragon显示来自一个网站的图片。我让Seadragon查看器处理测试URL,如下所示:

代码语言:javascript
复制
<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时:

代码语言:javascript
复制
http://66.img.americanancestors.org/e41de95d-6235-4581-b823-4887b50eb8ad.xml

(我可以在我的浏览器中访问它,当我在浏览器中输入它时,会下载一个xml文件),我得到"No Access-Control-Origin-Header“错误,并且在我的查看器中出现以下错误:

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

EN

回答 2

Stack Overflow用户

发布于 2014-08-14 00:14:30

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

  • 复制xml并将其托管在您自己的站点上
  • 向您自己的站点发出请求,该站点充当代理并获取远程xml文件
  • 请请求站点所有者为您设置CORS标头
票数 0
EN

Stack Overflow用户

发布于 2016-02-06 03:18:33

代码语言:javascript
复制
  tileSources: url,
  ajaxWithCredentials : true,
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25290960

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档