我試圖去掌握與燼和燼數據,但有正確處理CORS的問題。使用餘燼數據丟失選項請求
我已經設法定義一個模型等使用靜態夾具,但現在想要使用一些遠程JSON。所以我設置燼數據是這樣的:
App = Ember.Application.create();
App.Store = DS.Store.extend({
revision: 13,
adapter: DS.RESTAdapter.create({
url: 'http://clara.eagle/v1/money'
})
});
的模型是這樣的:
App.Transaction = DS.Model.extend({
type: DS.attr('string'),
occurrence: DS.attr('date'),
details: DS.attr('string'),
amount: DS.attr('number'),
currency: DS.attr('string')
});
而且這樣的路線:
App.IndexRoute = Ember.Route.extend({
model: function() {
return App.Transaction.find();
}
});
作爲後端我有一個現有的API,將返回JSON爲有效的GET
請求以下CORS標頭OPTIONS
請求。
Access-Control-Allow-Origin: http://ember.eagle
Access-Control-Allow-Headers: X-Requested-With, X-AUTHENTICATION, X-IP
Access-Control-Allow-Methods: GET, POST, PUT, DELETE, OPTIONS
(ember.eagle是ember app域,clara.eagle是api域)。
當我運行的應用程序不過鉻告訴我:
XMLHttpRequest cannot load http://clara.eagle/v1/money/transactions. Origin http://ember.eagle is not allowed by Access-Control-Allow-Origin.
所以我看着網絡選項卡,看看有什麼結果的OPTIONS
請求了,除非我能找到一個。雖然這解釋了API請求失敗的原因,但我不知道爲什麼OPTIONS
請求沒有被執行,因爲它最終使用jQuery發出請求(據我瞭解)。
因此,我的問題是爲什麼這個OPTIONS
請求沒有生成?如果它沒有設計成那麼我該如何做呢?
我測試過,OPTIONS
請求是由API生成的,並且GET
請求也可以工作,所以我不相信API出錯(screenshot)。自己使用jQuery(即vanilla jQuery)OPTIONS
請求按預期運行。
我是新來的Ember os有可能是我失蹤的東西,但目前我看不到它!
你有沒有注意到你的URL的API是'HTTP://克拉拉。老鷹'和你的後端設置指向'http:// ember.eagle'? – intuitivepixel
@intuitivepixel對不起,你的意思是? ember.eagle向clara.eagle發出請求 - clara.eagle將ember.eagle標記爲允許的來源。 – fenfe1
僅限於IE瀏覽器? – TMQuinn