Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.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
Java Tomcat和Apache2上带弹簧靴的CORS选项请求_Java_Spring Boot_Cors_Apache2_Tomcat9 - Fatal编程技术网

Java Tomcat和Apache2上带弹簧靴的CORS选项请求

Java Tomcat和Apache2上带弹簧靴的CORS选项请求,java,spring-boot,cors,apache2,tomcat9,Java,Spring Boot,Cors,Apache2,Tomcat9,我正在尝试在我的Spring boot应用程序上配置CORS。我将CrossOrigin注释添加到我的控制器类中 @CrossOrigin @RestController @RequestMapping("api/user") public class UserApiController { ... } 当我在本地计算机上运行此操作时,我会获得选项请求的以下响应头: Access-Control-Allow-Credentials →true Access-Control-Allow-

我正在尝试在我的Spring boot应用程序上配置CORS。我将CrossOrigin注释添加到我的控制器类中

@CrossOrigin
@RestController
@RequestMapping("api/user")
public class UserApiController {
    ...
}
当我在本地计算机上运行此操作时,我会获得选项请求的以下响应头:

Access-Control-Allow-Credentials →true
Access-Control-Allow-Methods →GET
Access-Control-Allow-Origin →http://www.test.be
Access-Control-Max-Age →1800
Allow →GET, HEAD, POST, PUT, DELETE, TRACE, OPTIONS, PATCH
Cache-Control →no-cache, no-store, max-age=0, must-revalidate
Content-Length →0
Date →Wed, 28 Mar 2018 09:13:33 GMT
Expires →0
Pragma →no-cache
Vary →Origin
X-Content-Type-Options →nosniff
X-Frame-Options →DENY
X-XSS-Protection →1; mode=block
我在Tomcat服务器上部署了这个应用程序,在Linux上运行的Apache2服务器后面。当我在那里做同样的请求时,我得到:

Allow →GET,HEAD
Cache-Control →no-cache, no-store, max-age=0, must-revalidate
Connection →Keep-Alive
Date →Wed, 28 Mar 2018 09:42:42 GMT
Expires →0
Keep-Alive →timeout=5, max=100
Pragma →no-cache
Server →Apache/2.4.18 (Ubuntu)
Transfer-Encoding →chunked
X-Content-Type-Options →nosniff
X-Frame-Options →DENY
X-XSS-Protection →1; mode=block
这就是我将Apache2配置为代理Tomcat的方式

<Proxy *>
Order deny,allow
Allow from all
</Proxy>
#
ProxyRequests Off
ProxyPreserveHost On
#
#
ProxyPass /app  http://localhost:8080/my_app
ProxyPassReverse  /app  http://localhost:8080/my_app

命令拒绝,允许
通融
#
代理请求关闭
代理主机
#
#
ProxyPass/apphttp://localhost:8080/my_app
ProxyPassReverse/apphttp://localhost:8080/my_app

两个请求都返回了200 OK状态代码,但在服务器版本中,我没有获得访问控制允许标头。我只看到“允许”标题中的“获取”和“头部”。为什么Apache2不允许选择?如何解决这个问题?

我也有同样的问题,我看到的唯一原因是Tomcat的头根本没有代理,或者只是部分代理。可能解决方案是将CORS头添加到Apache中。仍然希望有一天能找到另一个解决方案。