Backbone.js Modell Holen: Parameter führen Erfolg/Fehler/abgeschlossen Rückrufe nicht auszulösen
Wenn ich die Parameter in, ich bekomme kein Erfolg/Fehler/abgeschlossen Rückrufe, aber Fiddler zeigt eine 200 Antwort und meine angefordert json-Daten vorhanden sind. Das ist der Schlüssel. Fiddler zeigt die round trip war ein Erfolg und die angeforderten Daten hier client-Seite und in einem guten Zustand. Problem ist Rückgrat Erfolg/Misserfolg/abgeschlossen nicht genannt. Einfach nur ein großes nichts.
Mit der exakt gleichen Basis-URL, wenn ich den Parameter aus (und entfernen Sie Sie aus meiner web-service parallel), sowohl für Erfolg als auch abgeschlossen sind, ausgelöst. Unten ist mein fetch "mit" Parameter:
myModel.fetch({
data: {
name: 'Bob',
userid: '1',
usertype: 'new'
}
}, {
success: (function () {
alert(' Service request success: ');
}),
error: (function (e) {
alert(' Service request failure: ' + e);
}),
complete: (function (e) {
alert(' Service request completed ');
})
});
Wie kann das Rückgrat Verhalten anders sein? Es ist die gleiche URL, nur eben mit oder ohne Parameter.
Ich vermute, die Unterscheidung ist, dass unter der Haube in das Rückgrat zu Holen, die "mit" - Parameter Szenario ist ein post und das "ohne" Parameter ist ein einfach zu bekommen. Die IE-Konsole spiegelt diese mit leicht unterschiedlichen Ausgang.
"Mit den" Parametern mein IE-browser-Konsole meldet eine Warnung (kein Fehler, sondern eine Warnung), dass die Anfrage CORS:
!SEC7118: XMLHttpRequest für http://example.com/service/myservice.asmx/myoperation?name=Bob&userid=1&usertype=new notwendigen Cross-Origin Resource Sharing (CORS).
Ich denke, es ist nur mir zu sagen "hey, Sie machte einen cross-origin-Anfrage und ich lasse es durch". "Ohne" den Parameter bekomme ich keine Warnung. Ich habe den service-Header gesetzt:
Access-Control-Allow-Origin: *
Haben, und die Antworten, in der Tat, kommen wieder die Politik.
Ist also die Frage warum nicht das Rückgrat Erfolg/Fehler/abgeschlossen Rückrufe trigger "mit" die Parameter? Die Daten lässt es sich zurück. Sollte nicht Rückgrat Erfolg widerspiegeln?
fetch
übernimmt ein einzelnes argument. Lesen Sie dieser.InformationsquelleAutor Robert | 2013-08-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
Setzen Sie Ihre
success
,error
, undcomplete
Methoden im gleichen Objekt, das Sie habendata
. Es sollte nur das einzelne Objekt. Unter der Haube Backbone verwendet einfach jQueryajax()
Methode also das Objekt, das Sie passieren zufetch()
können jede Eigenschaft, die aufgenommen werden könnte in den Einstellungen-Objekt, das an$.ajax()
.InformationsquelleAutor idbehold