Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
CORS筛选器在我的java应用程序中不起作用_Java_Tomcat_Web Applications_Cors_Servlet Filters - Fatal编程技术网

CORS筛选器在我的java应用程序中不起作用

CORS筛选器在我的java应用程序中不起作用,java,tomcat,web-applications,cors,servlet-filters,Java,Tomcat,Web Applications,Cors,Servlet Filters,我使用的是jdk 8,在build.gradle中添加了tomcat catalina,并在web.xml中配置了以下值,但当访问请求URL时,它不会返回响应头 build.gradle: 编译组:'org.apache.tomcat',名称:'tomcat catalina',版本:'8.5.29' web.xml <filter> <filter-name>CorsFilter</filter-name> <filter-class>o

我使用的是jdk 8,在build.gradle中添加了tomcat catalina,并在web.xml中配置了以下值,但当访问请求URL时,它不会返回响应头

build.gradle:

编译组:'org.apache.tomcat',名称:'tomcat catalina',版本:'8.5.29'

web.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.exposed.headers</param-name>
    <param-value>Access-Control-Allow-Origin,Access-Control-Allow-Credentials</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>10</param-value>
  </init-param>
</filter>
<filter-mapping>
  <filter-name>CorsFilter</filter-name>
  <url-pattern>/*</url-pattern>
</filter-mapping>

克斯菲尔特
org.apache.catalina.filters.CorsFilter
科尔斯
*
cors.methods
获取、发布、头部、选项、放置
cors.allowed.headers
内容类型、X-Requested-With、accept、Origin、访问控制请求方法、访问控制请求标头
cors.exposed.headers
访问控制允许来源,访问控制允许凭据
cors.support.credentials
真的
cors.preflight.maxage
10
克斯菲尔特
/*
这对我不起作用

响应:

*   Trying 127.0.0.1...
* Connected to localhost (127.0.0.1) port 8080 (#0)
> GET /myApplication/test?sample=value HTTP/1.1
> Host: localhost:8080
> User-Agent: curl/7.47.0
> Accept: */*
> 
< HTTP/1.1 200 
< Content-Type: application/json;charset=utf-8
< Content-Length: 78
< Date: Thu, 26 Apr 2018 08:08:31 GMT
< 
*正在尝试127.0.0.1。。。
*已连接到本地主机(127.0.0.1)端口8080(#0)
>GET/myApplication/test?sample=value HTTP/1.1
>主机:本地主机:8080
>用户代理:curl/7.47.0
>接受:*/*
> 
我的定制CorsFilter在我的应用程序中运行良好

我做错了什么?如何在我的应用程序中配置apache CorsFiler而不是自定义CorsFiler


请提供您的意见。

我还发现spring框架存在类似的问题。我通过在响应头中添加X-XSRF-TOKEN解决了这个问题

尝试添加。它可以解决这个问题

res.addHeader("Access-Control-Allow-Headers", "x-requested-with, authorization, Content-Type, Authorization, credential, X-XSRF-TOKEN");

自定义cors筛选器工作正常..如何在我的应用程序中启用apache tomcat catalina cors筛选器。在这种情况下,需要使用访问控制Allow Origin进行限制。例如,访问控制允许来源:您解决了问题吗?