这个答案说 XmlHttpRequestObject Level 2 支持跨站点 ajax 调用。我知道很多浏览器都支持很多 HTML5 功能。这是 Chrome 或 Firefox(或某些奇迹 IE)支持的东西吗?
如果是这样,jQuery 是否提供了在使用该方法时使用它的$.ajax
方法?
这个答案说 XmlHttpRequestObject Level 2 支持跨站点 ajax 调用。我知道很多浏览器都支持很多 HTML5 功能。这是 Chrome 或 Firefox(或某些奇迹 IE)支持的东西吗?
如果是这样,jQuery 是否提供了在使用该方法时使用它的$.ajax
方法?
是的,Firefox > 3.5 和 Safari > 4、Chrome > 3 等浏览器支持XmlHttpRequestObject
Level 2,IE 8 有自己独立的XDomainRequest
. 尽管如此,另一方(您从中请求数据)必须允许以这种方式(通过称为CORS的方式)访问数据,因此您不能向任意域发出跨域请求。如果您向某些兼容的远程 API 发出请求,这可能没问题,但情况并非总是如此。
话虽如此,我不会推荐跨域 AJAX,因为我无法真正看到它提供的好处。使用 AJAX 代理可以防止浏览器锁定(对远程域的常规 HTTP 请求由服务器执行,结果通过 AJAX 调用返回)。很多流行的浏览器也不支持跨域 AJAX(IE 6、IE 7,没有 Opera 版本),所以你制造了很多兼容性问题。
作为你的问题的一部分,这里有一篇关于如何实现这一点的文章,包括一个小演示。它包括cors.js
似乎是跨浏览器跨域 AJAX 兼容的文件。