2

我正在从不同域的服务器加载图像。这些图像启用了 CORS(它们有这个标题:)Access-Control-Allow-Origin: *。在现代浏览器中,使用image.crossOrigin = '',我可以安全地将它们绘制到<canvas>.

我也想在 Internet Explorer 9 上做同样的事情。IE9 不支持crossOrigin图像。它确实具有XDomainRequest使用标头的跨域请求Access-Control-Allow-Origin

是否可以通过加载 PNGXDomainRequest并将其绘制到画布上?

4

1 回答 1

2

在 IE 中使用 XDomainRequest 下载图像的并发症

IE 只允许 XdomainRequest 使用纯文本数据 (ARGH!!):http: //blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

IE 还将使用其FindMimeFromData. 因此,即使您去掉 url 的类型前缀 (data:image/png;base64),这个嗅探器也会意识到您的 base64 文本实际上是一个图像并相应地对待它:http: //msdn.microsoft.com/en-us /library/ms775147(v=vs.85).aspx

一种可能的尝试是以某种方式重新编码 base64 文本以混淆嗅探器。

MS 显然意识到他们的 CORS 政策过于严格,并计划在他们的 webAPI 中添加扩展的 CORS 支持:http: //channel9.msdn.com/Shows/Web+Camps+TV/ASPNET-Web-API-and-CORS-支持

否则,您将面临从您自己的 Web 服务器反弹图像的当前解决方案,这样它们就不再是 X 域了。

于 2013-06-06T17:29:25.790 回答