私は残り火と残り火のデータを把握しようとしていますが、CORS を正しく処理することに問題があります。
静的フィクスチャを使用してモデルなどを定義することができましたが、リモート JSON を使用したいと考えています。だから私は次のようにember-dataをセットアップします:
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();
}
});
バックエンドとして、有効なGET
リクエストに対して JSON を返し、次の CORS ヘッダーをリクエストする既存の API があります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 アプリ ドメイン、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 に問題があるとは思いません (スクリーンショット)。独自の jQuery (バニラ jQuery) を使用すると、OPTIONS
要求は期待どおりに実行されます。
私は Ember OS を初めて使用します。おそらく何か不足している可能性がありますが、現時点ではそれが表示されません!