有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

Jetty中的java Set AccessControlAllowOrigin

我需要通过代码将“访问控制允许原点”设置为“*”

正在阅读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) { }

但它不起作用。我怎样才能解决这个问题


共 (1) 个答案

  1. # 1 楼答案

    尝试将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);