2016-05-01 17 views
1

私はTomcat 6でCORSを有効にしようとしています。 誰もが本番でそれを成功させましたか?CORS on Tomcat 6

フィルタを使用してweb.xmlファイルを編集し、このlinkで説明されているようなtomcatライブラリにいくつかのjarファイルを入れていくつかの手順を実行しましたが、成功しませんでした。

いずれの意見もあります。 Tksを事前に入力してください。

+0

クライアント側で何が問題になるのでしょうか? –

+0

はい、確かめてください - ログを見つけてください。 ** XMLHttpRequestはwww.mysite.com:8080/file.jpgを読み込むことができません。要求されたリソースに「Access-Control-Allow-Origin」ヘッダーが存在しません。 Origin www.mysite.com:3,000 'はアクセスが許可されていません。** 1)私はwww.mysite.com:3000をwww.mysite.com:8080に電話してJSONメッセージを返しますfile.jpgのフルWebパス。 2)www.mysite.com:8080 の認証後にその残りの呼び出しにアクセスする3)www.mysite.com:8080/のfile.jpgを含むいくつかの画像の許可を制御するフィルタがあります。 Apache Tomcat。 –

+1

ヘッダーを正しく追加しましたか?ここをクリックしてください:http://tomcat.apache.org/tomcat-7.0-doc/config/filter.html#CORS_Filter –

答えて

2

フィルタを試す代わりに、CORSでは次の方法を試してみることができます。ブラウザが許可起源ヘッダーにwww.mysite.com:3000を探しているので、あなたはこれを確認する必要があり

:それは次のように追加した後

public Response getYourMethod(HttpServletRequest req) throws Exception, IOException{ 
    //then your code 
} 

:あなたは何ができるか

がする方法を変更していますあなたが使用することができますwww.mysite.com:3000を取得するには

response.setHeader("Access-Control-Allow-Origin", "www.mysite.com:3000"); 

::次の行に追加されたばかり

request.getRemoteAddr() + ":" + request.getRemotePort(); 

しかし、ブラウザがローカルホストを探している場合、その後のために行く:一部のブラウザではまだそれを許しませんし、プリフライトリクエストによって拒否することができますので、*を追加

request.getRemoteHost(). 

は避けてください。

あなたはポストに述べたように、あなたが適切にヘッダーやメソッドを追加することを確認してください

here上を見て、その後、フィルターを追加したい場合。

希望が問題を解決します。

+0

コメントのためのハイテク - これはwww.mysite.com:8080で実行されている私のコードです - まだ動作していない、任意のアイデア? https://jsfiddle.net/19kLwc1t/ Tksもう一度。 –

+0

@ D.Francis編集した回答に示されているURLのように変更することができます –

+0

はい - 両方の方法が失敗しました。これはweb.xmlの/ catalina-home/conf https://jsfiddle.net/の下のフィルタです19kLwc1t/1/ 私が言ったように、私はcatalina-home/libの下でCORSの瓶でTomcat 6を使用しています アイデアはありますか?再びTks。 –