gpt4 book ai didi

jquery - 在 IE8/9 中使用 jQuery 和 XDomainRequest 的 CORS

转载 作者:IT王子 更新时间:2023-10-29 03:26:41 29 4
gpt4 key购买 nike

更新:我强烈建议不要在 XDomainRequest 上花费任何时间,因为它是一个非常糟糕的实现,有很多限制。它基本上只适用于对非 SSL 服务器的 GET 请求,因此您不妨使用 jsonp 或其他任何东西。


我正在使用 CORS 调用跨域 API,但是 Internet Explorer 出现问题。 CORS 应该可以通过 XDomainRequest 对象在 IE8 和 IE9 中实现,但是我无法正常工作..

JQuery refuses为 XDomainRequest 提供 native 支持,但是建议使用几个 jQuery 插件来添加此支持。这topic建议两个这样的插件:jQuery.XDomainRequest.jsxdr.js ,据报道可以工作。 Afaik,插件应该自动覆盖 jQuery.ajax 的行为。我找到了另一个插件 here .

我放了一些带有相应插件的演示页面 jQuery.XDomainRequestxdrjquery.ie.cors向支持 CORS 的服务器执行 ajax 请求。这些页面在 Chrome 和 Firefox 中工作,但是 IE8/9 立即抛出一个权限被拒绝的错误(甚至在发出请求之前)。这MSDN post建议添加另一个处理程序 xhr.onprogress = function() {}; 但我试过了,它也不起作用。

有什么线索是我做错了吗?我也用 IE8 现在使用 MS 虚拟服务器进行了测试,但它有完全相同的问题。

编辑:好的,所以我发现问题的一部分是我在 HTTPS 上使用 POST。显然 XDomainRequest 不允许通过 HTTPS 的 CORS。我可以切换到 HTTP,但我真的需要 POST。

编辑 2:参见 this issue on github为了这个故事的结束。事实证明,当使用 HTTP POST 时,xDomainRequest 只能将请求主体(参数)编码为 text/plain。这几乎让它一文不值,因为每个人都使用 application/x-www-form-urlencodedmultipart/form-data

最佳答案

支持POST方法,跨域https://请求你的调用页面也需要通过https加载。这是我找到的最好的文章,它详细解释了 XDomainRequest 的这些和其他限制:

http://blogs.msdn.com/b/ieinternals/archive/2010/05/13/xdomainrequest-restrictions-limitations-and-workarounds.aspx

关于jquery - 在 IE8/9 中使用 jQuery 和 XDomainRequest 的 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11487216/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com