2013-04-16 16 views
5

Webサービスを実行するための突堤サーバーがあります。最近、私はWebサービスを利用するプログラムを開発し、Access-Control-Allow-Origin問題に遭遇しました。JettyサーバーにAccess-Control-Allow-Originを追加する方法

Jetty内蔵サーバーにAccess Control-Allow-Origin:*を追加する方法を教えてください。

以下はwebappcontextコードです。

public WebAppContext buildWebAppContext(){ 
    webAppContext = new WebAppContext(); 
    webAppContext.setDescriptor(webAppContext + "/WEB-INF/web.xml"); 
    webAppContext.setResourceBase("."); 
    webAppContext.setContextPath("/posApplication"); 
    webAppContext.setAttribute("webContext", webAppContext); 
    return webAppContext; 
} 

ありがとうございます。

答えて

11

ウェブアプリにorg.eclipse.jetty.servlets.CrossOriginFilterを設定します。トピックの

古い質問/答え:https://stackoverflow.com/a/8454168/775715

参照桟橋Documentation HubCrossOriginFilter Use上:

クイックスタートは

  1. 自身にjetty-servlets.jarのコピーをつかみます。

  2. このCORSの問題のためにあなたのWEB-INF/web.xml

<filter> 
    <filter-name>cross-origin</filter-name> 
    <filter-class>org.eclipse.jetty.servlets.CrossOriginFilter</filter-class> 
    <init-param> 
     <param-name>allowedOrigins</param-name> 
     <param-value>*</param-value> 
    </init-param> 
    <init-param> 
     <param-name>allowedMethods</param-name> 
     <param-value>GET,POST,HEAD</param-value> 
    </init-param> 
    <init-param> 
     <param-name>allowedHeaders</param-name> 
     <param-value>X-Requested-With,Content-Type,Accept,Origin</param-value> 
    </init-param> 
</filter> 
<filter-mapping> 
    <filter-name>cross-origin</filter-name> 
    <url-pattern>/*</url-pattern> 
</filter-mapping> 
+0

"*"のようなワイルドカードはヘッダーには使用できません。私は明示的にそれが動作するためのヘッダのリストを提供しなければならなかった。あなたがリンクした質問の中のkiller7の答えを見てください。 – black666

+0

これが回答されたとき、2013年4月に戻って、正しいものでした。それ以来変化してきました。 –

+0

@JoakimErdfeltあなたは私を正しい解決策にリンクさせていただけますか?これは私のために働いていない –

1

に以下を追加します。あなたのWEB-INF/lib

  • に回避策をjetty-servlets.jarを入れてクロム/クロムブラウザに拡張機能を使用することです。ここに拡張機能のリンクがあります。

    https://chrome.google.com/webstore/detail/allow-control-allow-origi/nlfbmbojpeacfghkpbjhddihlkkiljbi?utm_source=chrome-app-launcher-info-dialog

    (明らかに動作しますが、良いアイデアではないかもしれない)、サーバー側のコード内の任意のヘッダを追加する必要はありません。

  • 関連する問題