47

私はこのjQueryajax呼び出しを持っています:

$.ajax({
    url : 'my_action',
    dataType: 'script',
    beforeSend : function(){
        if(1 == 1) //just an example
        {
            return false
        }
    },
    complete: function(){
        console.log('DONE');
    }
});

beforeSend条件が戻った場合にajax呼び出しを停止したいのですが、truefalseを返してもajax呼び出しは停止しません。

どうすればstopajaxで呼び出すことができbeforeSendますか?

=======更新=========

return false同様に動作します。

4

4 に答える 4

80
$.ajax({
    url : 'my_action',
    dataType: 'script',
    beforeSend : function(xhr, opts){
        if(1 == 1) //just an example
        {
            xhr.abort();
        }
    },
    complete: function(){
        console.log('DONE');
    }
});
于 2012-05-08T21:53:13.123 に答える
10

ほとんどの jQuery Ajax メソッドは XMLHttpRequest (または同等の) オブジェクトを返すため、単に abort() を使用できます。

var test = $.ajax({
    url : 'my_action',
    dataType: 'script',
    beforeSend : function(){
        if(1 == 1) //just an example
        {
            test.abort();
            return false
        }
    },
    complete: function(){
        console.log('DONE');
    }
});
于 2012-05-08T21:53:45.393 に答える
6
beforeSend:function(jqXHR,setting)
{
    // if(setting.url != "your url") jqXHR.abort();
    if(1 == 1) //just an example
    {
        jqXHR.abort();
    }
}
于 2012-05-08T21:54:32.240 に答える