Grałem w grę Backbone w mojej konsoli Chrome i mam problem z wieloma domenami, którego nie mogę rozwiązać.Backbone.js nie tworzy żądań między hostami?
Gospodarz łączę się przypuszczalnie poprawnie implementuje CORS ponieważ surowy żądanie XHR zwraca oczekiwaną JSON:
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();
(kłody 3 zdarzeń postępu XHR na konsoli z poprawnymi danymi w odpowiedzi)
Ale kiedy należy wykonać następujące czynności z Backbone przeglądarka nie podoba:
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();
(zwraca XMLHttpRequest cannot load http://example.com:3000/entities/item/. Origin http://localhost:8000 is not allowed by Access-Control-Allow-Origin.
)
Czy muszę coś powiedzieć Backbone, aby pracować z CORS? Wydaje się, że ten błąd wystąpił, zanim przeglądarka wysłała żądanie, więc nie sądzę, że jest to błąd konfiguracji serwera.
Można wyłączyć te same zasady pochodzenia w Chrome [tutaj] (http: // stackoverflow. com/a/3177718/1344509) wyjaśnił, jak wyłączyć tę funkcję w Chrome. – Ikrom
Dzięki za napiwek, ale nie chcę go wyłączyć (jest przeznaczony do uruchamiania w zwykłych przeglądarkach internetowych). – magneticMonster
Wtedy może [this] (http://stackoverflow.com/a/6487765/1344509) pomaga. – Ikrom