64 votes

Jquery vérification de la réussite de l'ajax post

comment définir le succès et l'échec de la fonction de l'ajax $.post?

112voto

Jere.Jones Points 5394

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.

45voto

Matthew Crumley Points 47284

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.

33voto

Li3ro Points 449

à 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é.

2voto

yashpal Points 55

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
          });

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X