2 Stimmen

Backbone.js synchronisiert - PHP Rückgabewert

Ich lerne, mit Backbone.js zu arbeiten und habe die folgende Umgebung eingerichtet:

/* Definiere das Modell */
var Login = Backbone.Model.extend({
    url:"api/index.php/login/"
});

/* Der folgende Code ist in einer View-Methode enthalten */

var login = new Login({
    email: $("#email").val(),
    pass: $("#pass").val()
});

var result = Backbone.sync('create',login);
alert(JSON.stringify(result));

Im "index.php" auf dem Server wird die richtige Methode aufgerufen und die Daten sind korrekt verfügbar.

Das Alert gibt nur aus: {"readyState":1}

Jetzt meine Frage: Was sollte der Server (index.php) zurückgeben, um dem Client zu antworten? Ich möchte Daten an den Client zurückübertragen, um sie z. B. anzuzeigen.

2voto

Tomalak Punkte 320467

Backbone.sync() ist ein asynchroner Vorgang. Du kannst nicht

var result = Backbone.sync('create', login);

machen, weil sync() nichts Nützliches zurückgibt. Es sendet die Anfrage an den Server und kehrt sofort zurück, lange bevor die Antwort des Servers eingetroffen ist.

Verwende den options Parameter und platziere die success und error Rückruffunktionen dort.

Backbone.sync('create', login, {
  success: function () {
    // was auch immer du tun möchtest, wenn der Login erfolgreich ist
  },
  error: function () {
    // zeige eine Fehlermeldung an
  }
});

Der error Rückruf würde zum Beispiel ausgeführt werden, wenn der Server eine 401 Unauthorized Antwort zurücksendet; der success Rückruf, wenn der Server 200 OK zurückgibt.

Für Dokumentation darüber, wie man diese Rückrufe verwendet und welche anderen Optionen du verwenden kannst, lies die jQuery.ajax() Dokumentation.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X