【问题标题】:Cross Site AJAX Call with XHR Level 2使用 XHR 级别 2 的跨站点 AJAX 调用
【发布时间】:2011-10-29 05:24:15
【问题描述】:

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

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

【问题讨论】:

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


    【解决方案1】:

    是的,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 版本),所以你正在制造很多兼容性问题。

    作为您的问题的一部分,here's an article 询问了如何实现这一点,包括一个小演示。它包括文件cors.js,它似乎是跨浏览器跨域AJAX 兼容的。

    【讨论】:

    • 感谢您的回答。我如此关心的主要原因是因为我在 Amazon WS 上做了一些工作,它们将您限制在一个请求/IP 上,所以如果一切都通过您自己的代理,那么如果您变得流行并超过它,您会有一些被丢弃的请求。当然,跨域可以使用 Silverlight,但我更喜欢 javascript/html5。
    • 所以如果你使用合适的浏览器,jQuery 足够聪明,可以为你使用 XHR Level2 对象???
    猜你喜欢
    • 2014-06-19
    • 1970-01-01
    • 2012-10-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-20
    • 1970-01-01
    相关资源
    最近更新 更多