web-dev-qa-db-ja.com

Apache TomcatでCORSを有効にする方法

クロスドメインのWebサービスを利用しようとしています。 ChromeのWebセキュリティを無効にすると、正常に機能します。これなしで動作するようにしたいので、cross-domain.xmlを追加しようとしましたが、まだ動作しませんでした。さらに検索すると、CORSがTomcatで有効になることを知りました。

from http://www.w3.org/wiki/CORS_Enabled


Apacheの場合、mod_headersを使用してこのヘッダーを公開するようにApacheを構成できます。これはApacheではデフォルトで有効になっていますが、次のコマンドを実行して、デプロイメントで有効にしたい場合があります。

a2enmod headers

ヘッダーを公開するには、、、およびセクション内、または.htaccessファイル内に次の行を追加できます。

<IfModule mod_headers.c>
   Header set Access-Control-Allow-Origin "*"
 </IfModule>

誰でもTomcatとどのファイルに正確にこれらの構成を追加するか教えてください。 EclipseからTomcatを使用しています。

ヘルプを感謝します。

20
Ravi Dasari

TomcatでのCORSサポートは、フィルターを介して提供されます。このフィルターをweb.xmlファイルに追加し、要件に合わせて構成する必要があります。利用可能な設定オプションの詳細については、 Tomcat Documentation をご覧ください。

12
Mark Thomas

この回答を確認してください: TomcatでCORSヘッダーを設定

Tomcat 7.0.41以降が必要なことに注意してください。

Tomcatの現在のインスタンスがどこにあるかを知るには、これを試してください:

System.out.println(System.getProperty("catalina.base"));

コンソールビューにパスが表示されます。

次に、そのフォルダーで/ conf/web.xmlを探して開き、上記のリンクの行を追加します。

6
jose

適切なソリューションに追加情報を少し追加するだけです。このクラスorg.Apache.catalina.filters.CorsFilterが必要になることに注意してください。そのため、Tomcatが7.0.41以上でない場合は、Tomcat-catalina.7.0.41.jar以上をダウンロードしてください( http://mvnrepository.com/ artifact/org.Apache.Tomcat/tomcat-catalina )そして、Tomcatインストールフォルダー内の「lib」フォルダーに配置します。 7.0.42を実際に使用しました。