SpringCloud (包含zuul) 解决跨域请求的方案

POST和GET的跨域请求解决:

        归根结底就是解决这个问题:Access-Control-Allow-Origin

一:在项目下添加该配置类

        该方法相对过时

@Configuration
@EnableWebMvc
public class CorsConfig implements WebMvcConfigurer {


    @Bean
    public WebMvcConfigurer corsConfigurer() {
        return new WebMvcConfigurerAdapter() {
            @Override
            public void addCorsMappings(CorsRegistry registry) {
                registry.addMapping("/**");
            }
        };
    }
}

二:获取response响应对象,在响应头里边添加Access-Control-Allow-Origin响应头

/*
 * import javax.servlet.http.HttpServletResponse;
 */

// 允许跨域访问的域名:若有端口需写全(协议+域名+端口),若没有端口末尾不用加'/'
response.setHeader("Access-Control-Allow-Origin", "*"); 

// 允许前端带认证cookie:启用此项后,上面的域名不能为'*',必须指定具体的域名,否则浏览器会提示
response.setHeader("Access-Control-Allow-Credentials", "true"); 

// 提示OPTIONS预检时,后端需要设置的两个常用自定义头
response.setHeader("Access-Control-Allow-Headers", "Content-Type,X-Requested-With");

 三:使用拦截器(Interceptor)或者过滤器(Filter),类似于SpringCloud中的zuul设置

 没有具体代码

       

注意:在SpringCloud项目中,尤其是包含网关zuul的,一般跨域问题都在zuul中解决了,这时候如果在服务中心再次添加Access-Control-Allow-Origin相关权限设置就会报multiple 多跨域方案的报错:

Failed to load http://xxx.yyy.zzz.com/zuul设置/controller接口path: The 'Access-Control-Allow-Origin' header contains multiple values 'http://xxx.yyy.zzz.com, *', but only one is allowed. Origin 'http://xxx.yyy.zzz.com' is therefore not allowed access.

PUT跨域请求:

暂未解决,临时使用post代替....如有大神烦请告知-_-,谢谢~

开发落坑,引以为鉴! 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值