2017-04-20 5 views
1

特定のember-dataモデル( 'cart')のバックエンドAPIからセッションクッキーを設定しようとしています。Ember:apiのセッションクッキーが設定されていません

モデルでcreateRecordが呼び出されると、私のAPIにXHR "POST"リクエストが表示されます。 APIがそれを処理して応答するのを見て、応答ヘッダーにSet-Cookieが表示されますが、ブラウザにはクッキーはありません!

emberアプリケーションとapiは、異なるポートでは同じドメイン(ローカルホスト)にあります。私はグーグルで、それはcookies are not port-specificと表示されます。だから私は何がそれを防ぐのか分からない。

Chrome拡張Postmanを使用して同じPOSTをAPIに送信しようとしましたが、ブラウザでCookieが正しく設定されています。要求がemberアプリケーションから来たときにちょうど動作しません。どこでもエラーは見られませんが。

クッキーが設定されていないものがありますか?私はなぜそれが存在するのかわかりません。私は、ブラウザが応答ヘッダーを処理してからemberが再生に戻るはずです。

私はこれで死のウサギの穴を下っています!どんな助けもありがたい。ここにリクエスト/レスポンスがあります。

enter image description here

+0

別のドメインを使用しようとしましたか? Chromeでは、ローカルホストではFirefox Cookieの問題が発生することがあります。 [ここ](http://stackoverflow.com/a/16328311/2471991)と[ここ](http://stackoverflow.com/questions/28583729/localhost-cookies-not-set) – Timm

+0

それは良い考えです - しかし、まだ動作していません:( – tarponjargon

答えて

3

あなたはアプリ上だけでなく、サーバー上の両方の権限を付与する必要があり、クロスドメインリクエストをしようとしている場合。その場合は、CORSをお読みください。

 xhrFields: { 
     withCredentials: true 
     } 

あなたはwithCredential hereの詳細を読むことができます:あなたはhttpOnlyクッキーを持っている場合にも、あなたはあなたのようAjaxのリクエストでwithCredientialsフィールドを設定する必要があります。これらの2つがクッキーの問題の主要な要因です。

+0

ありがとう!!私はこれを認めたいと思うよりも多くの時間を費やしました。 – tarponjargon

関連する問題