在XML配置中,可以通过添加以下代码来实现跨域请求:

<filter>
    <filter-name>CorsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
    <init-param>
        <param-name>cors.allowed.origins</param-name>
        <param-value>*</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.methods</param-name>
        <param-value>GET,POST,HEAD,OPTIONS,PUT</param-value>
    </init-param>
    <init-param>
        <param-name>cors.allowed.headers</param-name>
        <param-value>Content-Type,X-Requested-With,Accept,Origin,Access-Control-Request-Method,Access-Control-Request-Headers</param-value>
    </init-param>
    <init-param>
        <param-name>cors.support.credentials</param-name>
        <param-value>true</param-value>
    </init-param>
    <init-param>
        <param-name>cors.preflight.maxage</param-name>
        <param-value>1800</param-value>
    </init-param>
</filter>

<filter-mapping>
    <filter-name>CorsFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

上述代码将CorsFilter过滤器应用到所有URL上,并允许所有来源(cors.allowed.origins设置为*)。您也可以将其设置为特定的来源,例如http://example.com

此外,还可以通过cors.allowed.methods参数指定允许的请求方法,通过cors.allowed.headers参数指定允许的请求头,通过cors.support.credentials参数来控制是否支持凭据(如cookies、授权头等),通过cors.preflight.maxage参数指定预检请求的最大缓存时间。

以上代码使用了Apache Tomcat的CorsFilter过滤器,如果您使用的是其他容器,可能需要使用相应的跨域解决方案

xml配置跨域

原文地址: http://www.cveoy.top/t/topic/i0Tz 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录