SpringCloud zuul Cookie跨域丢失问题

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_21870555/article/details/82809975

什么是跨域:

  1. 协议、端口号、域名 都相同才是同一个域
  2. 只要有一个不同就算是跨域
  3. 主域名相同,子域名不同也算跨域

email.qq.com和zone.qq.com就属于主域相同,子域不同,也算是跨域

需要注意的是:协议不同(eg:https和http)或者端口号不同造成的跨域,前端是无法解决的

1.我所遇到的跨域问题说明:端口号不同。

2.由于我们做的项目采用的是SpringCloud,使用了zuul网关来管理所有的请求,zuul默认会过滤掉cookie等header信息

 

解决办法

在zuul项目的application.properties文件中添加 zuul.sensitive-headers=      (此处值不填为空)

加入Cors的跨域,继承WebMvcConfigurerAdapter类 重写addCorsMappings方法

import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**").allowedOrigins("*").allowedMethods("GET", "POST", "OPTIONS", "PUT")
                .allowedHeaders("Content-Type", "X-Requested-With", "accept", "Origin", "Access-Control-Request-Method",
                        "Access-Control-Request-Headers")
                .exposedHeaders("Access-Control-Allow-Origin", "Access-Control-Allow-Credentials")
                .allowCredentials(true).maxAge(3600);
    }

}

猜你喜欢

转载自blog.csdn.net/qq_21870555/article/details/82809975