Javascript img和XMLHttpRequest之间有什么区别?
我目前正在与CORS进行斗争。我想请求一张根据请求生成的图片(例如WMS的地图) 如果图片加载了Javascript img和XMLHttpRequest之间有什么区别?,javascript,cors,Javascript,Cors,我目前正在与CORS进行斗争。我想请求一张根据请求生成的图片(例如WMS的地图) 如果图片加载了img标签,则图片显示正确。但是,当我尝试使用XMLHttpRequest获取图片时,结果是: XMLHttpRequest cannot load http://vmap0.tiles.osgeo.org/wms/vmap0?[...]. Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin. 您
img
标签,则图片显示正确。但是,当我尝试使用XMLHttpRequest
获取图片时,结果是:
XMLHttpRequest cannot load http://vmap0.tiles.osgeo.org/wms/vmap0?[...].
Origin http://fiddle.jshell.net is not allowed by Access-Control-Allow-Origin.
您可以在上找到一个简单的示例
这两种方法的区别是什么?
我想使用
XMLHttpRequest
,因为请求的图片将是WebGL应用程序的纹理。XMLHttpRequest用于加载数据
IMG用于加载图像
什么这么难理解
至于访问控制允许源代码状态,您必须让服务器检查来自客户端的源代码标题,并将源代码作为访问控制允许源代码,您计划如何处理图像的二进制数据,而不是通过URL引用它?您实际上是在寻找CORS解决方案,还是只是询问相同的源策略?实际上x3dom使用它:“访问控制允许源”-XHR尝试失败/不使用CORS
img
不受同源策略(或CORS)的约束。SOP用于防止恶意代码篡改其他站点。由于HTML标记具有非常狭窄的定义用途,通常不会受到攻击(除非浏览器本身受到某种影响),因此它们不受相同限制的约束。在您的特定情况下,您最好的选择是将资源与客户端代码保持在同一站点上。因此,我将首先创建一个副本,然后将其提供给客户端。谢谢@mistapink我的观点是在你评论3D演示的链接之前提出的。显然,您希望通过代码操作图像,如果您坚持从其他域加载图像,则分发图像的服务器将需要对头部进行按摩。我在回答中添加了一个小的编辑。我知道我可以更改服务器标题,但我不能。此外,它并没有像@Matt Whipples评论那样回答我的问题。(顺便说一句:我没有投反对票)