我有一个部署在NGINX上的react应用程序,它成功地运行在9000端口上。
然后,我将我的春季引导war文件部署在tomcat服务器9xx上的端口8081上。
我已经在spring中启用/添加了全局cors,但仍然面临这个问题。
正如我所分析的,没有从服务器返回任何响应头。

在spring引导主类中,我添加了以下内容
@Bean
public WebMvcConfigurer corsConfigurer() {
return new WebMvcConfigurer() {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedHeaders("*").allowedMethods("*").allowedOrigins("http://localhost:9000").allowCredentials(true);
}
};
},并允许来自http://localhost:9000服务器
来自浏览器的请求失败,出现cors错误,在此,我的飞行前请求成功。

当我的弹簧靴在8081上部署时

我的NGINX吐露

我知道这个问题被问了很多次,但在过去的7到8个小时里,我一直坚持这个问题。
发布于 2021-04-18 11:38:52
您可以使用proxy_pass来避免CORS。将NGINX配置为代理(转发)所有以'/api/‘开头的URI请求到位于localhost: 8081的spring引导。
upstream springboot_service {
server localhost:8081;
}
location /api/ {
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-NginX-Proxy true;
proxy_pass http://springboot_service/;
proxy_ssl_session_reuse off;
proxy_set_header Host $http_host;
proxy_redirect off;
}https://stackoverflow.com/questions/67094505
复制相似问题