如何将Access-Control-Allow-Origin添加到jetty服务器

时间:2013-04-16 12:51:20

标签: java jetty embedded-jetty

我有一个Jetty服务器来运行我的Web服务。最近我开发了一个使用Web服务的程序并遇到了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;
}

谢谢。

2 个答案:

答案 0 :(得分:12)

在您的网络应用中设置org.eclipse.jetty.servlets.CrossOriginFilter

关于该主题的旧问题/答案:https://stackoverflow.com/a/8454168/775715

请参阅Documentation Hub上的Jetty CrossOriginFilter Use

快速入门

  1. 抓取一份jetty-servlets.jar

  2. jetty-servlets.jar放入WEB-INF/lib

  3. 将以下内容添加到WEB-INF/web.xml

  4. <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>
    

答案 1 :(得分:1)

此CORS问题的解决方法是在chrome / chromium浏览器中使用扩展。这是扩展名的链接。

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

无需在服务器端代码中添加任何标头(这显然有效,但可能不是一个好主意)。