2013-04-16 10 views
5

Ho un server di jetty per eseguire i miei servizi web. Recentemente ho sviluppato un programma per utilizzare il servizio Web e ho riscontrato problemi di Access-Control-Allow-Origin.Come aggiungere Access-Control-Allow-Origin al server di jetty

Come posso aggiungere il-Control-Allow-Origin accesso: * a un server pontile incorporato.

di seguito è il codice 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; 
} 

Grazie.

risposta

11

Setup il org.eclipse.jetty.servlets.CrossOriginFilter nel vostro web app.

Vecchio domanda/risposta sul tema: https://stackoverflow.com/a/8454168/775715

Vedere Jetty Documentation Hub su CrossOriginFilter Use:

rapida

  1. afferrare una copia di jetty-servlets.jar.

  2. Mettere il jetty-servlets.jar nel vostro WEB-INF/lib

  3. Aggiungi quanto segue al 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

Nota che i caratteri jolly come "*" non sono consentiti per le intestazioni. Ho dovuto fornire esplicitamente un elenco delle intestazioni per farlo funzionare. Guarda la risposta di killer7 nella domanda che hai collegato. – black666

+0

Quando questa risposta è stata confermata, ad aprile 2013, era corretta. Le cose sono cambiate da allora. –

+0

@JoakimErdfelt puoi per favore collegarmi ad una soluzione corretta? questo non funziona per me –