在beforeSend上停止$ .ajax
我有这个jQuery ajax调用:
$.ajax({ url : 'my_action', dataType: 'script', beforeSend : function(){ if(1 == 1) //just an example { return false } }, complete: function(){ console.log('DONE'); } });
如果条件返回true
我想停止beforeSend
下的ajax调用,但是返回false不会停止ajax调用。
如何stop
beforeSend
上的ajax调用?
=======更新=========
return false
作品。
$.ajax({ url : 'my_action', dataType: 'script', beforeSend : function(xhr, opts){ if(1 == 1) //just an example { xhr.abort(); } }, complete: function(){ console.log('DONE'); } });
大多数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'); } });
beforeSend:function(jqXHR,setting) { // if(setting.url != "your url") jqXHR.abort(); if(1 == 1) //just an example { jqXHR.abort(); } }
xhr.done()
; 这对我有用
$.ajax({ url : 'my_action', dataType: 'script', beforeSend : function(xhr){ if(1 == 1) //just an example { return false }; xhr.done(); //this works for me }, complete: function(){ console.log('DONE'); } });
http://api.jquery.com/jquery.ajax/
jqXHR.done(function( data, textStatus, jqXHR ) {});
成功callback选项的替代构造,请参阅deferred.done()
以获取实现细节。