IE Ajax Always Error Callback

Sence

  • 使用 jQuery 的 $.ajax 发送网络请求
  • 在其他浏览器上返回正常结果
  • 但是在 ie 上总是执行 error 回调

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    <!-- jquery-1.12.4.min.js -->
    $.ajax({
    async:false,
    cache:false,
    type:"POST",
    data:param,
    url:"http://xxx",
    dataType: "json",
    success: function(data){
    console.log(data);
    },error : function(error){
    console.log(error)
    }
    });
  • 如上代码在 ie 中总是得到 [object Object]{readyState: 0, responseJSON: undefined, status: 0, statusText: "No Transport"

    Solution

  • 在 $.ajax 执行之前加上 jQuery.support.cors=true; 即可

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <!-- jquery-1.12.4.min.js -->
    jQuery.support.cors=true;
    $.ajax({
    async:false,
    cache:false,
    type:"POST",
    data:param,
    url:"http://xxx",
    dataType: "json",
    success: function(data){
    console.log(data);
    },error : function(error){
    console.log(error)
    }
    });

Other

  • jQuery.support.cors 查看当前 jQuery 在当前浏览器是否支持跨域
< - あの日途切れてしまった言葉を 繋ぎ留めたいだけ - >