Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/376.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript img和XMLHttpRequest之间有什么区别?_Javascript_Cors - Fatal编程技术网

Javascript img和XMLHttpRequest之间有什么区别?

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. 您

我目前正在与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.
您可以在上找到一个简单的示例

这两种方法的区别是什么?


我想使用
XMLHttpRequest
,因为请求的图片将是WebGL应用程序的纹理。

XMLHttpRequest用于加载数据

IMG用于加载图像

什么这么难理解


至于访问控制允许源代码状态,您必须让服务器检查来自客户端的源代码标题,并将源代码作为访问控制允许源代码

,您计划如何处理图像的二进制数据,而不是通过URL引用它?您实际上是在寻找CORS解决方案,还是只是询问相同的源策略?实际上x3dom使用它:“访问控制允许源”-XHR尝试失败/不使用CORS
img
不受同源策略(或CORS)的约束。SOP用于防止恶意代码篡改其他站点。由于HTML标记具有非常狭窄的定义用途,通常不会受到攻击(除非浏览器本身受到某种影响),因此它们不受相同限制的约束。在您的特定情况下,您最好的选择是将资源与客户端代码保持在同一站点上。因此,我将首先创建一个副本,然后将其提供给客户端。谢谢@mistapink我的观点是在你评论3D演示的链接之前提出的。显然,您希望通过代码操作图像,如果您坚持从其他域加载图像,则分发图像的服务器将需要对头部进行按摩。我在回答中添加了一个小的编辑。我知道我可以更改服务器标题,但我不能。此外,它并没有像@Matt Whipples评论那样回答我的问题。(顺便说一句:我没有投反对票)