cors在spring引导时出错,连接react并尝试在tomcat或jboss服务器上部署?

vshtjzan  于 2021-07-13  发布在  Java
关注(0)|答案(1)|浏览(274)

我有一个react应用程序,它部署在运行9000端口的nginx上。
然后我在端口8081上的tomcat服务器9xx上部署了我的spring boot war文件。
我已经在springboot中启用/添加了全局cors,但是仍然面临这个问题。
在SpringBoot主类中,我添加了这个

@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错误,在此情况下,我的飞行前请求成功

我的Spring Boot部署在8081上

我的nginx配置

我知道这个问题已经被问了很多次,但我在过去的7到8个小时里一直被困在这个问题上。

mklgxw1f

mklgxw1f1#

你可以使用代理通行证来避免cors。将nginx配置为将uri以“/api/”开头的所有请求代理(转发)到位于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;
        }

相关问题