この質問: CORS をサポートするサーバー? 通常のサーブレットに関するものでした。CORSを制御するためにヘッダーを設定する方法を知っています。
私の質問は、CORS 制限の下で静的コンテンツを提供するように Tomcat を構成する方法です。
この質問: CORS をサポートするサーバー? 通常のサーブレットに関するものでした。CORSを制御するためにヘッダーを設定する方法を知っています。
私の質問は、CORS 制限の下で静的コンテンツを提供するように Tomcat を構成する方法です。
Tomcat 7.0.41 以降では、組み込みフィルターを介して CORS の動作を簡単に制御できます。
参考文献:
あなたがしなければならないことは、グローバルweb.xml
を編集しCATALINA_HOME/conf
てフィルター定義を追加することだけです。
<!-- ================== 組み込みのフィルター定義 ===================== --> ... <フィルター> <filter-name>CorsFilter</filter-name> <filter-class>org.apache.catalina.filters.CorsFilter</filter-class> </フィルター> <フィルターマッピング> <filter-name>CorsFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!-- ==================== ビルトイン フィルター マッピング ===================== -->
Access-Control-Allow-Origin: *
ただし、Firefox はクレデンシャル (Cookie) を使用したリクエストを好まないことに注意してください。クレデンシャル付きのリクエストに応答する場合、サーバーはドメインを指定する必要があり、ワイルドカードは使用できません。
この状況でリクエストをデバッグする場合は、次のフローチャートに従ってクロスオリジン リクエストがある場合にのみ CORS ヘッダーが送信されることに注意してください。
(tomcat.apache.org/tomcat-8.0-doc/images/cors-flowchart.png)
CORS サポートを追加するための Tomcat フィルターは次のとおりです: https://bitbucket.org/jsumners/corsfilter