1
$.ajax({
        beforeSend: function () {
            ...
        },
        complete: function () {
            ...
        }, 
        url: "serviceUrl",
        cache: false,
        type: 'POST',
        data: jsonObj,
        contentType: 'application/json; charset=utf-8',
        statusCode: {
            200 /*Get*/: function (responseData) {
                successCallback(responseData);
            },
            201 /*Created*/: function (responseData) {
                successCallback(responseData);
            }
        },
        error: function (jqXHR, textStatus, errorThrown) {
            handleException(jqXHR.status, failureCallback);
        }
    });

上記のajax呼び出しを使用しています。IEでajax呼び出しプロセスの間に他のページにリダイレクトすると、別のajax呼び出しを含むリダイレクトされたページをロードするのに長い時間がかかります。同じコードは、リダイレクトする前にChromeで例外(エラー)を表示します

別のページにリダイレクトしている間にajax呼び出しを終了するにはどうすればよいですか?

4

1 に答える 1

0

ajax 関数によって返される xhr オブジェクトを使用して、ajax 呼び出しを中止できます。このような:

var xhr = $.ajax({
    type: "POST",
    url: "some.php",
    data: "name=John&location=Boston",
    success: function(msg){
       alert( "Data Saved: " + msg );
    }
});

//kill the request
xhr.abort()
于 2013-03-04T08:13:29.897 に答える