使用img标签的Ajax请求

时间:2013-07-25 16:24:11

标签: javascript ajax cross-domain

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

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

这可能吗?如果没有,为什么以及如果是,如何?

谢谢!

2 个答案:

答案 0 :(得分:1)

在同一个域中,使用canvas即可:您使用canvas.drawImage将图片绘制到画布,然后使用canvas.toDataURLcanvas.toBlob获取画布上的数据。

在跨域情况下,如果画布为"tainted" with a cross-domain image,则会阻止toDataURLtoBlob。要克服这一限制,您必须:

  1. 使用CORS标题提供图像,

  2. 设置<img>的{​​{3}}(设置为“anonymous”或“use-credentials”,具体取决于是使用Cookie还是使用Cookie进行提取不是)。

答案 1 :(得分:0)

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