XDomainRequest可以用来加载和绘制图像吗?
Can XDomainRequest be used to load and draw images?
我正在加载来自不同域的服务器的图像。这些图像是启用cors的(它们有这个标题:Access-Control-Allow-Origin: *
)。在现代浏览器中,使用image.crossOrigin = ''
,我可以安全地将它们绘制到<canvas>
。
我也希望能够做同样的Internet Explorer 9。IE9在图像上不支持crossOrigin
。对于使用Access-Control-Allow-Origin
头的跨域请求,它确实有XDomainRequest
。
是否有可能通过XDomainRequest
加载PNG并将其绘制到画布上?
在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-Support
否则,你就只能使用当前的解决方案,从你自己的web服务器上反弹图像,这样它们就不再是x域了
相关文章:
- 画布:逐像素绘制图像并请求动画帧计时
- WebGL绘制图像
- 多重绘制图像后画布清除
- 可以'清除Rect后,不要在画布上绘制图像
- 如何在单页应用程序中重新绘制图像
- 画布中的图像在绘制图像后立即消失
- 使用Canvas绘制图像
- 如何在javascript中在图像上绘制图像(没有CSS和HTML)
- 使用模式在 HTML5/JS 中绘制图像
- 绘制并重新绘制图像以模拟动画是行不通的
- Dart Canvas未绘制图像
- 在新窗口中打开时,未在画布中绘制图像
- 在画布上绘制图像并导出打印质量的图像
- 用一个加载项绘制图像阵列
- html画布绘制图像不起作用
- Chrome 31.0 HTML5画布绘制图像
- 用HTML5和Javascript绘制图像
- 在新框架上绘制图像,同时仍然使用P5.js中的利萨茹曲线
- 如何在画布上更快地绘制图像
- 在 HTML5 画布中绘制图像,同时保留图像