J'ai cet appel ajQuery jQuery:
$.ajax({
url : 'my_action',
dataType: 'script',
beforeSend : function(){
if(1 == 1) //just an example
{
return false
}
},
complete: function(){
console.log('DONE');
}
});
Je veux arrêter l'appel ajax sous beforeSend
si la condition retourne true
mais return false n'arrête pas l'appel ajax.
Comment puis-je stop
l'appel ajax sur le beforeSend
?
======= MISE À JOUR =========
return false
fonctionne aussi.
$.ajax({
url : 'my_action',
dataType: 'script',
beforeSend : function(xhr, opts){
if(1 == 1) //just an example
{
xhr.abort();
}
},
complete: function(){
console.log('DONE');
}
});
La plupart des méthodes jQuery Ajax renvoient un objet XMLHttpRequest (ou l'équivalent), vous pouvez donc simplement utiliser 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()
; ça marche pour moi
$.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 ) {});
Une construction alternative à l'option de rappel de réussite, reportez-vous à deferred.done()
pour les détails d'implémentation.