0

我有一个问题,我想在我自己的服务器上使用 ajax 请求在端口 80 和端口 8080 之间进行通信。我知道 CORS 和跨域请求源策略以及针对此问题的iframe解决方案。

出于好奇,我想知道是否以及如何做到这一点。如果请求的信息被调用为<img>带有需要调用的 URL 的 SRC 的标签,并且返回的内容以某种方式从接收到的数据中解析——

这可能吗?如果不是,为什么,如果是,如何?

谢谢!

4

2 回答 2

1

在同一域上,使用canvas可以做到这一点:使用 将图像绘制到画布上canvas.drawImage,然后使用canvas.toDataURLcanvas.toBlob获取画布上的数据。

在跨域情况下,如果画布已被跨域图像“污染”,toDataURL则会被阻止。要克服此限制,您必须:toBlob

  1. 使用 CORS 标头提供图像,以及

  2. 将 的crossorigin属性设置为<img>(设置为“ anonymous”或“ use-credentials”,具体取决于是否应使用 cookie 完成获取)。

于 2013-07-25T16:33:20.950 回答
0

不可以。虽然有 API 可以访问图像数据(尽管我认为它们都与加载到的位图相关,<canvas>而不是<img>),但您不能从不同的来源访问数据,因为同源策略仍然适用。

于 2013-07-25T16:26:34.620 回答