2013-04-16 7 views
5

Mam serwer pomostowy do uruchamiania moich usług internetowych. Niedawno opracowałem program do korzystania z usługi sieciowej i wpadł na problem Access Control-Allow-Origin.Jak dodać Access-Control-Allow-Origin do serwera pomostowego

Jak dodać kontrolkę Access-Control-Allow-Origin: * do wbudowanego serwera pomostu.

Poniżej znajduje się kod 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; 
} 

Dziękuję.

Odpowiedz

11

Skonfiguruj org.eclipse.jetty.servlets.CrossOriginFilter w swojej aplikacji internetowej.

Old pytanie/odpowiedź na ten temat: https://stackoverflow.com/a/8454168/775715

See Jetty Documentation Hub na CrossOriginFilter Use:

Skrócona

  1. Grab sobie kopię jetty-servlets.jar.

  2. Umieść jetty-servlets.jar w swojej WEB-INF/lib

  3. Dodaj następujące do 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

Uwaga: znaki wieloznaczne, takie jak "*", nie są dozwolone w nagłówkach. Musiałem jawnie podać listę nagłówków, aby działał. Zobacz odpowiedź killer7 w pytaniu, które połączyłeś. – black666

+0

Po otrzymaniu odpowiedzi, w kwietniu 2013 r., Była ona poprawna. Od tego czasu sytuacja się zmieniła. –

+0

@JoakimErdfelt Czy możesz połączyć ze mną poprawne rozwiązanie? ten nie działa dla mnie –