代码之家  ›  专栏  ›  技术社区  ›  quarks

使用Tomcat服务器为每个请求启用CORS

  •  0
  • quarks  · 技术社区  · 7 年前

    在不使用Servlet过滤器的情况下,有没有办法配置Tomcat 9.0.12 catalina.properties )允许所有CORS请求、所有头和几乎每个请求?

    1 回复  |  直到 7 年前
        1
  •  0
  •   Sergio A.    6 年前

    Tomcat确实通过添加CorsFilter来支持CORS。 这些配置足够灵活,可以在需要时拦截所有请求(请注意下面示例中的url模式):

    <filter>
      <filter-name>CorsFilter</filter-name>
      <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    </filter>
    <filter-mapping>
      <filter-name>CorsFilter</filter-name>
      <url-pattern>/*</url-pattern>
    </filter-mapping>
    

    现在,这显然必须在web应用程序级别完成(web应用程序的web.xml中的更改)。

    如果您想“全局”应用这个过滤器(适用于tomcat上可能部署的所有WAR),那么有一个选项可以配置tomcat本身,以便它能够捕获所有可能的HTTP请求:

    将上述配置添加到 conf/web.xml 你完了。

    旁注:

    如果您扩展了这个过滤器或其他东西,并且出于某种原因需要一些额外的依赖项,它们当然不能出现在WAR中,但必须出现在tomcat本身的类路径中,所以将所需的库放入 lib 文件夹(同样,仅当您需要类似的内容时)

    有用的资源: