【发布时间】:2013-06-02 02:51:52
【问题描述】:
我的印象是 Internet Explorer 10 完全支持 CORS,但现在我不确定了。
我们有一个使用多个域并读取图像数据的 JS/HTML5 应用程序。我们正在从另一个域加载 JS 中的图像,将图像 imageDraw()ing 到我们的画布,然后在画布上使用 getImageData。 (我们没有使用跨域 XMLHttpRequests)。为此,我们必须在提供图像的服务器上设置响应标头:
access-control-allow-origin: *
access-control-allow-credentials: true
并在加载前在 JS 中的图像对象上设置这个:
image.crossOrigin = 'Anonymous'; //Also tried lowercase
这适用于所有新浏览器,除了 IE10,当我们尝试读取数据时会引发安全错误。
SCRIPT5022: SecurityError
IE10 是否需要做更多工作才能将这些跨域图像视为无污染?
更新:
我注意到this answer 回答了上一个问题。 有趣的是this JSFiddle 也不适用于 IE10 - 谁能确认这在他们的 IE10 中不起作用?
【问题讨论】:
-
设置
Access-Control-Allow-Origin可能是必要的,但有时还不够。尝试在此处设置答案中给出的额外选项:stackoverflow.com/questions/667519/… -
尝试使用浏览器点击test-cors.appspot.com/#technical。如果这暴露了问题,那么您可能无能为力。
-
@user568109 - 我现在添加了该答案中提到的额外标题,但不幸的是我仍然看到同样的问题。
-
@UpTheCreek 同意——我刚刚在 Opera 中对其进行了测试,它也可以正常工作。因此,如果 IE 被正确标记为“不支持”,那就是奇怪的了。您是否尝试将
image.crossOrigin设置为"anonymous"(小写)或true?我认为您发布的大写版本是规范正确的,但也许 IE 实现了错误? -
我已经为我正在做的一个项目做了很多测试,我会在网站的图标上做一些计算。 IE9 和 IE10 都不支持
<canvas>中的图像资源的 CORS。我最终编写了一个代理来获取图像,以使图像请求不违反同源规则。对不起。
标签: javascript html internet-explorer cors