跨域是指一个域下的文档或脚本试图去请求另一个域下的资源,违反了同源策略的约定,这样就产生了跨域问题。
1.如果我们的项目经过nginx路由的话,直接在项目里面这样配置就可以了。
@Configuration
public class WebMvcConfig extends WebMvcConfigurationSupport {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowedMethods("*")
.allowedOrigins("*")
.allowedHeaders("*");
super.addCorsMappings(registry);
}
}
2.如果我们的项目经过了nginx路由,那么在location里添加如下元素。
location ^~/sxg_city_manager_app/ {
#add_header Access-Control-Allow-Origin *;
add_header Access-Control-Allow-Headers "Origin, X-Requested-With, Content-Type, Accept";
add_header Access-Control-Allow-Methods "GET, POST, OPTIONS";
proxy_pass http://127.0.0.1:8802;
}
add_header Access-Control-Allow-Origin * 这个被注释的原因是我们在springboot里面已经添加了 ,这里再添加就会报以下错误:
The 'Access-Control-Allow-Origin' header contains multiple values ',*', but only one is allowed.
3.总之,在测试跨域问题的时候,我们可以根据报的具体错误在location里添加相应的add_header元素。
网友评论