comment définir le succès et l'échec de la fonction de l'ajax $.post?
Réponses
Trop de publicités?La documentation est ici: http://docs.jquery.com/Ajax/jQuery.ajax
Mais, pour résumer, l'appel ajax prend un tas d'options. ceux que vous cherchez sont d'erreur et de succès.
Vous serait-il appeler comme ceci:
$.ajax({
url: 'mypage.html',
success: function(){
alert('success');
},
error: function(){
alert('failure');
}
});
J'ai montré le succès et la fonction d'erreur en ne prenant aucun arguments, mais ils peuvent recevoir des arguments.
La fonction d'erreur peut prendre trois arguments: XMLHttpRequest, textStatus, et errorThrown.
Le succès de la fonction peut prendre deux arguments: les données et textStatus. La page que vous avez demandé sera dans les données de l'argument.
Si vous avez besoin d'un échec de la fonction, vous ne pouvez pas utiliser le $.obtenir ou $.fonctions post; vous aurez besoin d'appeler le $.ajax directement à la fonction. Vous passez un objet d'options qui peuvent avoir du "succès" et "erreur" rappels.
Au lieu de cela:
$.post("/post/url.php", parameters, successFunction);
vous pouvez utiliser ce:
$.ajax({
url: "/post/url.php",
type: "POST",
data: parameters,
success: successFunction,
error: errorFunction
});
Il y a beaucoup d'autres options disponibles. La documentation indique toutes les options disponibles.
à l'aide de jQuery 1.8 et ci-dessus, doit utiliser les éléments suivants:
var request = $.ajax({
type: 'POST',
url: 'mmm.php',
data: { abc: "abcdefghijklmnopqrstuvwxyz" } })
.done(function(data) { alert("success"+data.slice(0, 100)); })
.fail(function() { alert("error"); })
.always(function() { alert("complete"); });
découvrez les docs @hitautodestruct déclaré.
Je me demandais, pourquoi ils n'ont pas de fournir en jquery, j'ai donc effectué quelques modifications dans le fichier jquery ,,, voici le code modifié bloc:
original bloc de Code:
post: function( url, data, callback, type ) {
// shift arguments if data argument was omited
if ( jQuery.isFunction( data ) ) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
dataType: type
});
Changé le bloc de Code:
post: function (url, data, callback, failcallback, type) {
if (type === undefined || type === null) {
if (!jQuery.isFunction(failcallback)) {
type=failcallback
}
else if (!jQuery.isFunction(callback)) {
type = callback
}
}
if (jQuery.isFunction(data) && jQuery.isFunction(callback)) {
failcallback = callback;
}
// shift arguments if data argument was omited
if (jQuery.isFunction(data)) {
type = type || callback;
callback = data;
data = {};
}
return jQuery.ajax({
type: "POST",
url: url,
data: data,
success: callback,
error:failcallback,
dataType: type
});
},
Cela devrait aider l'un essayant d'attraper erreur sur $.Post en jquery.
Mise à jour: Ou il y a une autre façon de le faire est :
$.post(url,{},function(res){
//To do write if call is successful
}).error(function(p1,p2,p3){
//To do Write if call is failed
});