jQuery ajax回调在Firefox中表现得很奇怪

我有一个问题与jQuery 1.7.1和Firefox中的ajax功能。 我正在做一个从CMIS服务器请求json的ajax调用。 在铬一切正常。 让我举一个例子:

function ajaxCall(url, requestType, isAsync, parameters, doneCb, failCb) {
    $.ajax(url, {
        type: requestType,
        async: isAsync,
        data: parameters
    }).done(
        alert("test"),
        // the following function gets not executed in firefox with async: true
        function (result) {
            doneCb(result);
        }).fail(function (cause) {
            failCb(cause);
        });
}

Firefox中奇怪的是,如果我使用async:false,那么所有的东西都像魅力一样。 如果我使用async:true,那么完成的回调也会被执行,并且会弹出警告消息“test”。 但警报后的功能没有得到执行。 我GOOGLE了很多,并找不到解决这个问题的方法。

你是我的最后希望;)

感谢和最好的问候,西蒙

我也尝试了老式的方式,但结果仍然是一样的 - 如果异步是真的,成功函数不会在firefox中调用。

 $.ajax(url, {
        type: requestType,
        async: isAsync,            
        data: parameters,
        success: function(result){
            doneCb(result);
        },
        error: function(cause){
            failCb(cause);
        }
    });

该代码正在发出alert ,并将其返回给done的第一个参数。 它在函数初始化时执行,而不是在实际调用done()方法时执行。

它应该看起来像

.done( 
    function() { alert("test") },
    function() { ... }
)
链接地址: http://www.djcxy.com/p/17337.html

上一篇: jQuery ajax done callback behaves strange in firefox

下一篇: How to set a JavaScript breakpoint from code in Chrome?