2

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

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

4

1 回答 1

2

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

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

作为你的问题的一部分,这里有一篇关于如何实现这一点的文章,包括一个小演示。它包括cors.js似乎是跨浏览器跨域 AJAX 兼容的文件。

于 2011-08-17T19:52:08.923 回答