XHR Level 2的跨站点AJAX呼叫

时间:2011-08-17 19:27:30

标签: ajax firefox google-chrome xmlhttprequest xmlhttprequest-level2

This answer表示XmlHttpRequestObject Level 2支持跨站点ajax调用。我知道很多浏览器都支持很多HTML5功能。这是Chrome或Firefox(或一些奇迹IE)支持的东西吗?

如果是这样,jQuery是否提供了在使用$.ajax方法时使用它的方法?

1 个答案:

答案 0 :(得分:2)

是的,浏览器如Firefox> 3.5和Safari> 4,Chrome> 3支持XmlHttpRequestObject级别2,IE 8有自己独立的XDomainRequest。尽管如此,另一方(您要求数据)必须允许以这种方式访问​​数据(通过称为CORS的方式),因此您不能对任何任意域发出跨域请求。如果您向某个兼容的远程API发出请求,这可能没问题,但情况并非总是这样。

话虽如此,我不推荐跨域AJAX,因为我无法真正看到它提供的好处。通过使用AJAX代理可以防止浏览器锁定(对服务器执行对远程域的常规HTTP请求,并通过AJAX调用返回结果)。许多流行的浏览器也不支持跨域AJAX(IE 6,IE 7,没有Opera版本),所以你会产生很多兼容性问题。

作为问题的一部分,我们要求提供一个示例here's an article,了解如何实现这一目标,包括一个小小的演示。它包含文件cors.js,它似乎是跨浏览器跨域AJAX兼容。