0

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 を使用する場合、done コールバックも実行され、「test」というメッセージを含むアラート ポップアップが表示されます。しかし、アラートの後の関数は実行されません。私はたくさんグーグルで検索しましたが、この問題の解決策を見つけることができませんでした。

あなたは私の最後の希望です;)

よろしくお願いします、サイモン

私も昔ながらの方法を試しましたが、結果は同じです.asyncがtrueの場合、成功関数はfirefoxで呼び出されません.

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

1 に答える 1

1

そのコードは を取り、alert返されたものを done の最初の引数に代入しています。done()メソッドが実際に呼び出されたときではなく、関数が初期化されているときに実行されます。

次のように見えるはずです

.done( 
    function() { alert("test") },
    function() { ... }
)
于 2013-10-11T12:40:32.897 に答える