2017-02-16 11 views
1

私はSymfony 3で書かれたバックエンドAPIを使うフロントエンドAngular JSアプリを持っています。私はSymfony HTTP Cacheを使って重い反応を加速しています。Symfony 3 HTTPキャッシュとクロスオリジンヘッダが上書きされます

私はテスト段階にあるので、私のバックエンドAPIはすべての回答に Access-Control-Allow-Headers:"*"を追加します。

しかし、キャッシュされた応答に問題があります。そのヘッダーでは、Access-Control-Allow-Headers:"*"Access-Control-Allow-Headers:"example.com"で上書きされます。example.comは、キャッシュされる直前にリソースを要求したクライアントアドレスです。

私は私のフロントエンドアドレスwww.example.com上のアプリの代わりに、アドレスexample.comを開くのであれば、私は放火犯に次のエラーが表示

XMLHttpRequest cannot load https://backend.com/tests/all. 
The 'Access-Control-Allow-Origin' header has a value 'http://example.com' 
that is not equal to the supplied origin. 
Origin 'http://www.example.com' is therefore not allowed access. 

私は私のSymfony3アプリケーションにCORSヘッダのサポートを追加しNelmioCorsBundleを使用しています。

答えて

2

ことはあなたの設定でforced_allow_origin_value: *を設定してみてください:

the configuration docsパー
nelmio_cors: 
    defaults: 
     … 
     forced_allow_origin_value: * 

デフォルトでは、それはルールあなたと一致した場合、Access-Control-Allow-Originレスポンスヘッダの値が」( Originリクエストヘッダの値であり、 ve はallow_originと定義されています)、大部分の使用には、 の場合は問題ありません。そうでない場合は、を使用して正確な値を に設定して、この動作を無効にすることができます。

Access-Control-Allow-Origin: *を送信するには、正確な値は*です。

+1

非常にありがとうございます! configに 'forced_allow_origin_value'を追加すると私の問題が解決しました。 しかし、その前に、NelmioCorsをバージョン1.5に更新する必要があります。antは、 '*'をqoutesに入れるためです。 'forced_allow_origin_value: '*'' –

+0

ありがとう!それは私のために動作しますが、引用符付き: 'forced_allow_origin_value: '*'' – Xander

関連する問題