Jquery ajax()跨域远程服务器在IE8中不起作用

11 javascript ajax jquery cross-domain internet-explorer-8

我有一个脚本,它向远程服务器发出ajax请求,返回纯文本响应.除了IE8(震撼)之外,它在所有浏览器中都能正常工作.

这是代码:

$.ajax({
  url: 'abc.com/?somerequest=somevalue',
  cache: false,
  type: 'POST',
  data:{
    sub: 'uploadprogress',
    uploadid: this.uploadId
  },
  dataType: 'html',
  success: this.uploadProgressResp,
  error: this.errorResp
});
Run Code Online (Sandbox Code Playgroud)

在IE8中,它返回"无传输"错误.我想这是因为IE8不允许跨域请求?

注意:我没有为远程服务器编写API.如果我这样做,我会返回JSON响应而不是纯文本响应.所以是的,dataType应该是HTML而不是JSON.

Spa*_*son 7

尝试在ajax调用之前将其添加到某处- 最好的位置是在执行任何其他JavaScript之前!

jQuery.support.cors = true;
Run Code Online (Sandbox Code Playgroud)

如果没有这个,Internet Explorer将抛出"无传输"错误.错误消息本身相当令人困惑,但默认情况下,跨域ajax请求被IE阻止,但其他浏览器看起来并非如此 - 或者至少Chrome和Firefox会起到这种作用.

历史上,我在这个问题上分享了你的痛苦.相信它会对你的问题进行排序.

  • 这让我感到惊讶 - 我遇到了"No Transport"问题并立即用该代码解决了这个问题.我做了一些挖掘并遇到了这个问题:http://stackoverflow.com/questions/5087549/access-denied-to-jquery-script-on-ie - 有什么帮助吗?对不起,我的建议不适合你: (2认同)