使用jQuery同步ajax调用不能在firefox上运行

时间:2015-10-20 08:45:42

标签: javascript ajax firefox asynchronous

我正在尝试将ajax调用设置async属性设置为false但是它在chrome和ie上工作时会出错。

我知道Firefox高度推荐async ajax调用由于用户体验问题,但我需要在继续做其他事情之前得到响应,并且确定(并且必须)等待收到响应..

这是工作和不工作的代码,任何帮助将不胜感激。

    data = $.ajax({
        url: Common.serverPath + 'recovery/list',
        crossDomain: true,
        dataType: 'json',
        async: true,
        type: 'GET',
        contentType: 'application/json',
        xhrFields: {
            withCredentials: true
        }
    });
    setTimeout(function(){ console.log(data.statusText);
    },3000);

控制台:确定

    data = $.ajax({
        url: Common.serverPath + 'recovery/list',
        crossDomain: true,
        dataType: 'json',
        async: false,
        type: 'GET',
        contentType: 'application/json',
        xhrFields: {
            withCredentials: true
        }
    });
    setTimeout(function(){ console.log(data.statusText); },
    3000);

console:InvalidAccessError:基础对象

不支持参数或操作

chrome和ie两者都可以正常工作

1 个答案:

答案 0 :(得分:2)

我发现"跨域请求和dataType:" jsonp"请求不支持同步操作。"即使它在ie和chrome中也是如此:)