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

Set Access-Control-Allow-Origin in Jetty

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

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

        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);