为了账号安全,请及时绑定邮箱和手机立即绑定

IE8 / 9中带有jQuery和XDomainRequest的CORS

IE8 / 9中带有jQuery和XDomainRequest的CORS

慕工程0101907 2019-12-16 11:11:10
我强烈建议您不要花任何时间在XDomainRequest上,因为它是一个非常糟糕的实现,有很多限制。它基本上只对非SSL服务器的GET请求有效,因此您最好使用jsonp或其他任何方法。我正在使用CORS调用跨域API,但是Internet Explorer出现了问题。通过该XDomainRequest对象,应该可以在IE8和IE9中实现CORS ,但是我无法正常工作。JQuery 拒绝为XDomainRequest提供本机支持,但是建议使用几个jQuery插件来添加此支持。本主题建议了两个这样的插件:jQuery.XDomainRequest.js和xdr.js,据报道它们可以工作。Afaik,插件应自动覆盖的行为jQuery.ajax。我在这里找到了另一个插件。我分别放了一些演示页面,分别带有插件jQuery.XDomainRequest和xdr和jquery.ie.cors,它们对启用了CORS的服务器执行ajax请求。这些页面可在Chrome和Firefox中运行,但是IE8 / 9会立即引发权限被拒绝错误(甚至在发出请求之前)。这个MSDN帖子建议添加另一个处理程序,xhr.onprogress = function() {};但是我尝试了这个操作,但它也不起作用。任何提示我在做什么错?我现在也已经使用MS虚拟服务器对IE8进行了测试,但是它有完全相同的问题。编辑:确定,所以我发现问题的一部分是我在HTTPS上使用POST。显然XDomainRequest不允许通过HTTPS进行CORS。我可以切换到HTTP,但我确实需要POST。Edit2:有关该故事的结尾,请参见github上的此问题。事实证明,使用HTTP POST时,xDomainRequest只能将请求正文(参数)编码为text/plain。这几乎使它一文不值,因为每个人都使用application/x-www-form-urlencoded或multipart/form-data。IE8 / 9中带有jQuery和XDomainRequest的CORS
查看完整描述

3 回答

?
慕村9548890

TA贡献1884条经验 获得超4个赞

对于IE8 / 9中的CORS请求,您可以使用jQuery插件jquery-transport-xdr


查看完整回答
反对 回复 2019-12-16
  • 3 回答
  • 0 关注
  • 701 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信