Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/77.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript jQuery-ajax-done回调在firefox中的行为很奇怪_Javascript_Jquery_Ajax_Asynchronous - Fatal编程技术网

Javascript jQuery-ajax-done回调在firefox中的行为很奇怪

Javascript jQuery-ajax-done回调在firefox中的行为很奇怪,javascript,jquery,ajax,asynchronous,Javascript,Jquery,Ajax,Asynchronous,我对jquery1.7.1和firefox中的ajax函数有一个问题。 我正在做一个ajax调用,它从CMIS服务器请求json。在chrome中,一切正常。让我举个例子: function ajaxCall(url, requestType, isAsync, parameters, doneCb, failCb) { $.ajax(url, { type: requestType, async: isAsync, data: param

我对jquery1.7.1和firefox中的ajax函数有一个问题。 我正在做一个ajax调用,它从CMIS服务器请求json。在chrome中,一切正常。让我举个例子:

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的情况下,也会执行done回调,并弹出带有消息“test”的警报。但警报后的函数不会执行。 我在谷歌上搜索了很多,找不到解决这个问题的方法

你是我最后的希望;)

谢谢并致以最良好的祝愿, 西蒙

我也尝试了老式的方法,但结果仍然是一样的——如果async为true,则不会在firefox中调用success函数

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

该代码获取
警报
,并将其返回的内容分配给done的第一个参数。它在初始化函数时执行,而不是在实际调用
done()
方法时执行

应该是这样的

.done( 
    function() { alert("test") },
    function() { ... }
)

谢谢你的回复。在我的原始代码中,我没有警报。我只是把它放在那里看看发生了什么。如果我在没有警报的情况下执行代码,那么函数也不会被调用:(删除了我的答案。刚刚注意到你在使用Jquery 1.7。这个建议是针对Jquery 1.8+。对不起