2013-04-16 8 views
5

Ich habe einen Jetty-Server, auf dem meine Webdienste ausgeführt werden können. Kürzlich habe ich ein Programm entwickelt, um den Web-Service zu konsumieren und lief auf Access-Control-Allow-Origin-Problem.So fügen Sie Access-Control-Allow-Origin zum Jetty-Server hinzu

Wie kann ich die Access-Control-Allow-Origin: * zu einem Anlegesteg eingebetteten Server hinzufügen.

unten ist der Webappcontext-Code.

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

Danke.

Antwort

11

Richten Sie die org.eclipse.jetty.servlets.CrossOriginFilter in Ihrer Webanwendung ein.

Alte Frage/Antwort zum Thema: https://stackoverflow.com/a/8454168/775715

See Jetty Documentation Hub auf CrossOriginFilter Use:

Quick Start

  1. Sie sich eine Kopie von jetty-servlets.jar Schnappen.

  2. Setzen Sie die jetty-servlets.jar in Ihrem WEB-INF/lib

  3. auf Ihre folgende hinzufügen 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

Beachten Sie, dass Platzhalter wie "*" für Header nicht zulässig sind. Ich musste explizit eine Liste der Header angeben, damit es funktioniert. Sehen Sie die Antwort von killer7 in der Frage, die Sie verknüpft haben. – black666

+0

Als dies beantwortet wurde, war es im April 2013 korrekt. Die Dinge haben sich seitdem verändert. –

+0

@JoakimErdfelt können Sie mich bitte zu einer richtigen Lösung verlinken? dieses funktioniert nicht für mich –