Wenn ich die Parameter einfüge, bekomme ich keine Erfolge/Fehler/Rückrufe, aber Fiddler zeigt eine 200 Antwort und meine angeforderten JSON Daten sind da . Das ist der Schlüssel. Fiddler zeigt, dass die Hin- und Rückreise ein Erfolg war und die angeforderten Daten sind hier clientseitig und in gutem Zustand. Problem ist Rückgrat Erfolg/Fehler/abgeschlossen nicht genannt. Holen Sie sich einfach ein großes Nichts.Backbone.js Modell holen: Parameter verursachen Erfolg/Fehler/abgeschlossene Rückrufe nicht auszulösen
Mit der genau gleichen Basis-URL, wenn ich die Parameter herausnehmen (und sie aus meinem Web-Service parallel entfernen), werden sowohl Erfolg als auch abgeschlossen ausgelöst. Unten ist meine 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 Backbone-Verhalten anders sein? Es ist die gleiche URL, nur mit oder ohne Parameter.
Ich denke, der Unterschied ist, dass unter der Haube in der Backbone-Abruf, die "mit" Parameter Szenario ist ein Post und die "ohne" Parameter ist eine einfache erhalten. Die IE-Konsole spiegelt dies mit etwas anderer Ausgabe wider.
"Mit" Parameter meine IE-Browser-Konsole meldet eine Warnung (kein Fehler, sondern eine Warnung), dass die Anfrage erforderlich CORS:
SEC7118: XMLHttpRequest für http://example.com/service/myservice.asmx/myoperation?name=Bob&userid=1&usertype=new erforderlich Cross-Origin Resource Sharing (CORS).
Ich denke, es ist nur zu sagen "Hey, du hast eine Cross-Origin-Anfrage gemacht und ich lasse es durch". "Ohne" die Parameter bekomme ich diese Warnung nicht. Ich mache die Service-Header gesetzt haben:
Access-Control-Allow-Origin: *
Und die Antworten in der Tat kommen zurück, dass die Politik widerspiegelt.
Also die Frage ist, warum nicht die Backbone-Erfolg/Fehler/vollständige Callbacks "mit" den Parametern auslösen? Die Daten machen es zurück. Sollte das Backbone nicht den Erfolg widerspiegeln?
'fetch' nimmt ein einzelnes Argument. Lesen Sie [this] (http://backbonejs.org/docs/backbone.html#section-55). – fbynite