2016-04-08 9 views
0

emberJSアプリケーションで作業中のサーバ(google POSTMANでチェック)への基本リクエストを作成しようとしています。しかし、私はそれを試して、私はHTTP 404エラーを取得します。次に、エラーを調べて、クライアント側からの元のリクエストがGETリクエストではなくOPTIONリクエストであることを確認しました。また、私はAccept、2つのヘッダーを設定し、Content-Typeapplication/jsonすると検査する場合、検査員は、これらのヘッダを印刷しました:emberJS JSONAPIアダプタがGETリクエストの代わりにOPTIONを送信します

Accept:*/* 
Accept-Encoding:gzip, deflate, sdch 
Accept-Language:en-US,en;q=0.8 
Access-Control-Request-Headers:accept, content-type 
Access-Control-Request-Method:GET 
Connection:keep-alive 
Host:frontend.com 
Origin:http://localhost:4200 
Referer:http://localhost:4200/restaurant 
User-Agent:Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36 

今ここアダプタ

//Application.js adapter: 
import DS from 'ember-data'; 

export default DS.JSONAPIadapter.extend({ 
    host: 'http://server.com', 
    namespace: 'v1', 
    headers: { 
     "Accept": "application/json", 
     "Content-Type": "application/json" 
    } 
}); 

があり、これをオンにするいくつかの方法がありますOPTIONをオフにするか、回避策がありますか?私はemberがそうしなければならない主なものの1つであると考えられているので、emberはとてもバグだとは思わなかった。要求を送る。 助けが必要です。

+0

あなたのコメントは、Emberがバグであると思われることを示していますか?クロスドメインリクエストの仕組みに精通していますか? –

+1

あなたはこのトピックについて学ぶことができます(それはブラウザとは何の関係もなく、ブラウザーが動作する方法です):https://developer.mozilla(クライアントコードと 'host'プロパティーが異なるホストであると仮定します) .org/en-US/docs/Web/HTTP/Access_control_CORS –

+1

この問題のために私はあまりにもストレスが強かったので、エバーはバグだったと思った。私はCORSに全く慣れていませんでした。今私はバックエンドのCORSが問題を解決できるようにしようとします。ありがとう:) – xpg94

答えて

1

これは「リクエストのプリフライト」です。クロスオリジン要求を行っている間、ブラウザはまずOPTION要求を送信してプリフライト要求を送信します。 OPTION要求が正常に応答された場合、実際の要求はサーバーに送信されます。

「プリフライト」は、そのような場合に失敗します。

  • CORSが
  • 認証/認可の問題が発生しているサーバー
  • サービス機能が見つかりません(404)
  • サービスでは有効になっていませんあなたが送信するヘッダーを受け入れることはできません

これらのキーワードで検索することもできます:preflight, cors

+0

またはおそらく、サーバーはOPTIONS要求をサポートしていません。 emberデータのプリフライトリクエストをオフにすることについて誰かが知っていますか? WP-REST-APIはそれをサポートしていないようです(信じられないほど) – Epirocks

+0

あなたはそれをオフにすることはできません。これはブラウザによって行われます。 – ykaragol

+0

実際には、Emberデータアダプタのコンテンツタイプをtext/plainに設定することで、ブラウザを停止することができます。それは開発のためのものなので、私はOPTIONSをサポートするという点を見ません。 – Epirocks

関連する問題