2017-07-21 7 views
0

フェッチ要求(javaスクリプトを使用)を送信する必要があります。localhost:8080から送信するときは問題ありませんが、localhostを他に変更しているときに303応答または応答がありませんすべて。CORSが別のポートでフェッチする

また、8080から送信するとクッキーが含まれ、他のホストからは送信されません。

どこに問題がありますか?私は完全に失われています。

+2

どのように我々は問題があなたのコードを見ずに何であるか知っているだろうか? – Daniel

答えて

1

MDN got quite good doc on CORS and fetch

Origin: http://foo.example 
Access-Control-Request-Method: GET 

Serverが確認しなければなりません:URLはヘッダを持つ最初の問題のOPTION要求がされますフェッチサイトとは異なる起源からのものである場合

fetch(url, {method: 'GET', mode: 'cors'}) 

:だから、CORSフラグと異なる起源にフェッチ呼び出したときその原点は、応答を送信するような要求に対して許可されています

Access-Control-Allow-Origin: http://foo.example 
Access-Control-Allow-Methods: GET 

ほとんどの場合、サーバー側では、CORSが、これは簡単にブラウザのコンソールのネットワーク再経由で確認することができ、有効になっていません。クエスト。あなたのサイトがAccess-Control-Allow-Origin:ヘッダーに返信されていることを前提に、OPTIONSが送信され、サーバー側から返信されていることを確認してください。あなたのサーバーが{credentials: 'include'}とフェッチを呼び出す必要があり、許可を必要とする場合

、注意してください。

fetch(url, {method: 'GET', mode: 'cors', credentials: 'include'}) 
+0

"最も可能性の高いサーバー側にはCORSが有効になっていません" - OPが説明している結果は説明できません。 – Quentin

+0

なぜ、それはサーバーの実装に依存します。 「CORSが有効になっていません」とは、送信元からCORSが有効になっていないことを意味します。 –

+0

CORSが設定されていない場合は、「メソッドが許可されていません」または通常の応答(JSではアクセスできない)が予想されます。私はまったく応答も303リダイレクトも期待しません。 – Quentin

関連する問題