2013-04-16 16 views
5

我有一個碼頭服務器來運行我的Web服務。最近我開發了一個程序來使用Web服務,並遇到Access-Control-Allow-Origin問題。如何將Access-Control-Allow-Origin添加到碼頭服務器

如何將Access-Control-Allow-Origin:*添加到jetty嵌入式服務器。

下面是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. jetty-servlets.jarWEB-INF/lib

  3. 以下內容添加到您的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你可以請我鏈接到一個正確的解決方案?這一個不適合我 –