java springcloud nginx跨域问题
day01
第一天印象有点模糊了 是通过vue使用axios调用nginx然后springcloud发生了跨域问题。
通过搜索更改请求头’Access-Control-Allow-Credentials’ ‘true’;&‘Access-Control-Allow-Origin’ ‘*’; 也没有解决问题 最后在Controller类上加上 @CrossOrigin 解决了问题。
day02
导包顺序
最为一个前端小白在cookie获取上又出了大问题
首先是jquery,需要两个包 但每次运行在console都会报错:显示function没有定义。啊 这就 唉…
最后知道了是这两个包导入的时候是有顺序的 需要先引入jquery 然后cookie
困扰一下午的大头来了
cookie跨域丢失问题
在通过$.cookie(cookieName);获取cookie的时候都是undefined。确定后端发送cookie成功。
第一个想到的肯定就是浏览器的问题 发现cookie设置成允许任何cookie也不能解决问题
浏览器
搜索获知Chrome新增了SameSite这个属性给cookie 那就修改一下吧
通过Chrome直接访问chrome://flags/#same-site-by-default-cookies
搜索SameSite
将这两项设置为Disabled
遗憾的是任然没有解决 那这还是浏览器的问题吗???
Cookie 的 SameSite 属性
后端cookie属性设置
接下来直接通过localhost跨过nginx和zuul直接调用可以获取cookie。
又获知可以给后端发送的cookie设置SameSite属性
Springboot应用中设置Cookie的SameSite属性
设置是设置成功了但是还是只能通过localhost直接访问才可以获取,通过网关获取还是不行
nginx设置
搜索的时候发现nginx可能会发生跨域丢失的问题
在nginx.conf加了一行属性proxy_cookie_path但是遗憾的是仍然没有解决问题
SpringCloud-zuul网关设置
SpringCloud zuul Cookie跨域丢失问题
在zuul网关application.properties里面加了一句zuul.sensitive-headers=再次运行的时候可以获取cookie了
最后想看看到底是哪里的问题的时候 将后端的cookie属性设置去掉,把nginx属性配置去掉都可以,那也就是zuul网关自己的问题了。整整三个小时,这或许是程序猿掉头发的原因吧
刚刚入门的小小白,如有错误欢迎批评,奥利给