Frage

Wie der Ajax Verbindungsstatus auf der jQuery $.ajax Methode aufrufe?

War es hilfreich?

Lösung

$.ajax() gibt das XMLHttpRequest-Objekt, also wenn Sie wirklich zugreifen möchten sie wie die Zustandsänderungen, Sie können dies tun:

var xhr = $.ajax({ ... });
xhr.onreadystatechange = function() { alert(xhr.readyState); };

Aber die eingebaute in Rückrufe sollte alles, was Sie für die meisten Anwendungen benötigen, vor allem success und complete.

, Dinge zu tun, bevor die Anfrage Brände, Verwendung beforeSend, oder besser für die meisten Fälle, die .ajaxStart() und .ajaxStop() Veranstaltungen ... zum Beispiel eine Lade Nachricht zu zeigen, sobald eine ajax-Aktivität vor sich geht.

Andere Tipps

Methode, getestet mit jQuery 2.0.2:

$.ajax({
    beforeSend: function (jqXHR, settings) {
        var self = this;
        var xhr = settings.xhr;
        settings.xhr = function () {
            var output = xhr();
            output.onreadystatechange = function () {
                if (typeof(self.readyStateChanged) == "function") {
                    self.readyStateChanged(this);
                }
            };
            return output;
        };
    },
    readyStateChanged: function (xhr) {
        if (xhr.readyState == 1) {
            /* Connected! Do something */
        }
    },
    url: "..."
});

Im Grunde, was ich brauchte, war ein Rückruf nach readyState wird 1 (Connected), die, in meinem Fall war nützlich, wenn lange Polling "Push" Benachrichtigungen mit jQuery zu implementieren.

Es soll möglich sein, alles, was Sie, indem Sie Rückrufe für die success, error müssen zu bekommen, und complete Optionen im Objekt, das Sie in die ajax()-Methode übergeben. Werfen Sie einen Blick in die Dokumentation:

http://api.jquery.com/jQuery.ajax/

Im Prinzip funktioniert es wie folgt aus:

$.ajax({
    url: 'ajax/test.html',
    success: function(data) {
        alert('Load was performed.');
    },
    error: function() {alert("error occurred.")},
    complete: function() {alert("ajax complete.")}
});

Sie können die Dokumentation für genau sehen, welche Parameter Sie den Zugriff auf in den Callback-Funktionen haben.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top