w3schools Jquery überprüft den Erfolg von Ajax Post




w3schools jquery post (4)

Wie definiere ich die Erfolgs- und Fehlerfunktion eines Ajax $ .post?


Die Dokumentation finden Sie hier: http://docs.jquery.com/Ajax/jQuery.ajax

Aber, um es zusammenzufassen, der Ajax-Aufruf erfordert eine Reihe von Optionen. die, nach denen Sie suchen, sind Fehler und Erfolg.

Du würdest es so nennen:

$.ajax({
  url: 'mypage.html',
  success: function(){
    alert('success');
  },
  error: function(){
    alert('failure');
  }
});

Ich habe die Erfolgs- und Fehlerfunktion gezeigt, die keine Argumente nimmt, aber sie können Argumente empfangen.

Die Fehlerfunktion kann drei Argumente annehmen: XMLHttpRequest, textStatus und errorThrown.

Die Erfolgsfunktion kann zwei Argumente annehmen: data und textStatus. Die angeforderte Seite befindet sich im Datenargument.


Ich habe mich gefragt, warum sie nicht in jQuery selbst zur Verfügung gestellt haben, also habe ich ein paar Änderungen in der jquery-Datei gemacht, hier ist der geänderte Codeblock:

Original Code Block:

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

Geänderter Codeblock:

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

Dies sollte demjenigen helfen, der versucht, Fehler in $ .Post in jquery zu finden.

Aktualisiert: Oder es gibt noch einen anderen Weg dies zu tun:

   $.post(url,{},function(res){
        //To do write if call is successful
   }).error(function(p1,p2,p3){
             //To do Write if call is failed
          });

Dieser Stil ist auch möglich:

$.get("mypage.html")
    .done(function(result){
        alert("done. read "+result.length+" characters.");
    })
    .fail(function(jqXHR, textStatus, errorThrown){
        alert("fail. status: "+textStatus);
    })

Wenn Sie eine Fehlerfunktion benötigen, können Sie die Funktionen $ .get oder $ .post nicht verwenden. Sie müssen die Funktion $ .ajax direkt aufrufen. Sie übergeben ein Optionsobjekt, das "Erfolg" und "Fehler" Callbacks haben kann.

An Stelle von:

$.post("/post/url.php", parameters, successFunction);

Du würdest das benutzen:

$.ajax({
    url: "/post/url.php",
    type: "POST",
    data: parameters,
    success: successFunction,
    error: errorFunction
});

Es gibt auch viele andere Optionen zur Verfügung. Die Dokumentation listet alle verfügbaren Optionen auf.







jquery