2016-04-04 11 views
2

CORSをJettyサーブレット用に設定しようとしていて、一部のXHRリクエストがプリフライトで拒否されています。私はAccess-Control-Allow-MethodsとAccess-Control-Allow-Headersを設定しており、CrossOriginFilterのJettyのドキュメントによれば、デフォルトのAccess-Control-Allow Originヘッダーは「*」です。だからすべてが許されるべきです。CORSプリフライトリクエストがターゲットリソースにチェーンされているとはどういう意味ですか?

私はトラブルに関する情報を見つけるのを持っています別のフィルタオプションがあります:

chainPreflight 真のプリフライトリクエストは(OPTION要求など) 通常の取り扱いのために彼らのターゲット・リソースに連鎖されている場合。さもなければ、フィルターはプリフライトに応答します 。デフォルトはtrueです。

フィルタが「プリフライトに応答する」とはどういう意味ですか?要求がターゲットにチェーンされていることは、どういう意味ですか?私がこのオプションについて見つけたほとんどのリソースは、まったく同じフレーズを使用しており、それ以上の説明はしていません。 this stackoverflow response

、作家は言う:

注:CrossOriginFilterはデフォルトでtrueに設定されたパラメータ、chainPreflightを、持っています。これをfalseに設定する必要があります。これはCORSがOPTIONSの代わりにPOSTをSOLRに転送するための鍵でした..また、注文は重要です!

私はSolrアプリケーションを構築していませんが、これが私の設定に間違っているのかどうかは疑問です。このオプションをよく理解する助けがあれば幸いです!

答えて

2

chainPreflightオプションが(デフォルトでは)trueに設定されている場合、CrossOriginFilterは必要なアクセス制御ヘッダーを追加し、さらに処理するために要求をエンドポイントに渡します。ターゲットエンドポイントには、プリフライト要求を処理するためのロジックが必要です。

chainPreflightオプションがfalseの場合、CrossOriginFilterは必要なアクセス制御ヘッダーを追加し、要求に直接応答します。

イラストについてはmy blog postをご覧ください。

関連する問題