Ich habe in meiner Chrome-Konsole mit Backbone gespielt und bin auf ein domänenübergreifendes Problem gestoßen, das ich nicht herausfinden kann.Backbone.js wird keine Cross-Host-Anfragen stellen?
Gastgeber Ich verbinde vermutlich korrekt implementiert CORS weil eine rohe XHR Anfrage die erwartete JSON zurückgibt:
var http = new XMLHttpRequest();
http.open('GET', 'http://example.com:3000/entities/item/15.json', true);
http.onreadystatechange = function(evt) { console.log(evt); }
http.send();
(Protokolle 3 XHR Fortschritt Ereignisse auf der Konsole mit den richtigen Daten in der Antwort)
Aber wenn ich folgend mit Backbone tun hat der Browser es nicht mag:
var Item = Backbone.Model.extend({});
var ItemsCollection = Backbone.Collection.extend({
model: Item,
url: 'http://example.com:3000/entities/item/'
});
var items = new ItemsCollection();
items.fetch();
(kehrt XMLHttpRequest cannot load http://example.com:3000/entities/item/. Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.
)
Gibt es irgendetwas, was ich tun muss, um Backbone zu sagen, dass es mit CORS arbeiten soll? Dieser Fehler scheint aufgetreten zu sein, bevor der Browser überhaupt eine Anfrage gestellt hat, also glaube ich nicht, dass es sich um einen Serverkonfigurationsfehler handelt.
Sie können in Chrome gleichen Ursprungs Richtlinie deaktivieren, [hier] (http: // Stackoverflow. com/a/3177718/1344509) erläutert, wie Sie es in Chrome deaktivieren. – Ikrom
Danke für den Tipp, aber ich möchte ihn nicht deaktivieren (dies ist so konzipiert, dass er auf normalen Webbrowsern läuft). – magneticMonster
Dann hilft vielleicht [dies] (http://stackoverflow.com/a/6487765/1344509). – Ikrom