java - 在 Jetty 中设置 Access-Control-Allow-Origin

标签 java servlets jetty

我需要通过代码将“Access-Control-Allow-Origin”设置为“*”。

阅读this我尝试设置 org.eclipse.jetty.servlets.CrossOriginFilter使用setInitParameter :

        Server  server = new Server(activity.WEB_SERVER_PORT);  
        ServletContextHandler context = new ServletContextHandler(ServletContextHandler.SESSIONS);

        context.setWelcomeFiles(new String[] { "index.html" });
        context.setContextPath("/");

        context.setInitParameter("org.eclipse.jetty.servlets.CrossOriginFilter", "/*");

        TheServlet sv = new TheServlet();
        context.addServlet(new ServletHolder(sv),"/servleturl");

        server.setHandler(context); 
        try {
            server.start();
        } catch (Exception e) { }

但是这不起作用。怎么解决?

最佳答案

尝试将 addFilter 方法与 filterHolder 一起使用。这段代码可能会有所帮助

    FilterHolder filterHolder = new FilterHolder(CrossOriginFilter.class);
    filterHolder.setInitParameter("allowedOrigins", "*");
    filterHolder.setInitParameter("allowedMethods", "GET, POST");

    ServletContextHandler servletContextHandler;
    servletContextHandler = new ServletContextHandler(webServer, "/", ServletContextHandler.SESSIONS);
    servletContextHandler.addServlet(atmosphereServletHolder, "/atmosphere/*");
    servletContextHandler.addServlet(jerseyServletHolder, "/jersey/*");
    servletContextHandler.addFilter(filterHolder, "/*", null);

关于java - 在 Jetty 中设置 Access-Control-Allow-Origin,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29969996/

相关文章:

javascript - 使用Java Servlet下载动态文件

java - 无法从 Karaf 2.2.0 OSGi 容器中的根上下文运行 WAR

java - 如何确定 api 实现的规范版本

java - 关于在 Java 中加载 Class 实例

java - SVNKit 替代品

java - 我正在制作一个安全的、编译时的 String.format(...) 等价物。问题仍然存在

java - 无法连接到服务器(错误 404)

带有两个分隔符的java split()方法

java ee - 使用 servlet 对用户进行身份验证

java - Google 应用引擎开发服务器不更新 web.xml