9

我有一个码头服务器来运行我的网络服务。最近我开发了一个使用 Web 服务的程序并遇到了 Access-Control-Allow-Origin 问题。

如何将 Access-Control-Allow-Origin: * 添加到码头嵌入式服务器。

下面是 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;
}

谢谢你。

4

2 回答 2

14

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

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

请参阅有关CrossOriginFilter 使用的Jetty文档中心

快速开始

  1. 获取一份jetty-servlets.jar的副本。

  2. jetty-servlets.jar你的WEB-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>
于 2013-04-16T17:38:41.577 回答
0

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

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

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

于 2017-05-17T06:45:47.270 回答