HTML5跨域XmlHttpRequest与旧版XmlHttpRequest的区别

4
我注意到关于使用新的HTML5 JS XHR技术实现跨域XmlHttpRequest方法的讨论比较多。下面是标准JavaScript XHR代码...
  var xhr=new XMLHttpRequest();
  xhr.open("GET",url,false);
  xhr.send();
  var output=xhr.responseXML;

如果要得到相同的输出结果,需要使用HTML5 XHR跨域代码。


1
@fmsf,“jsonp”不是HTML5特有的。 - Darin Dimitrov
1
我认为你想到的是CORS,它与HTML 5无关。 - Quentin
是的,我对CORS很熟悉,只是有点困惑其他的东西...现在明白了 :) - zdebruine
1个回答

3

从JS角度来看,没有什么不同。跨域授权由浏览器在HTTP层面上使用CORS处理,因此您的服务器必须支持跨域协商。


这只会发生在你的文档类型设置为HTML5或者在所有情况下,只要浏览器支持HTML5? - zdebruine
1
@wagtail,CORS与HTML5无关。它已经存在很长时间了。因此,您使用的DOCTYPE并不重要。重要的是客户端浏览器是否支持它以及服务器是否发送正确的HTTP响应头。因此,HTML5对于跨域JavaScript屏幕抓取程序并没有带来任何新东西。它们仍然像目前一样让人非常痛苦 :-) - Darin Dimitrov
@josh3736 如果您正在尝试访问的网站没有指定 Access-Control-Allow-Origin: *,那该怎么办? - zdebruine
@wagtail,在这种情况下它不起作用。你忘记了跨域AJAX。 - Darin Dimitrov
1
那你就做不到了。CORS 的重点在于 服务器 必须明确允许跨域请求。 - josh3736
我明白了。理解得更好了!谢谢。 - zdebruine

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接