软件技术适合女生学吗,关键词优化网站排名,seo是什么,罗湖中心区做网站这几天在部署一个前后端分离的项目#xff0c;使用docker进行部署#xff0c;在本地测试没有一点问题没有#xff0c;前脚刚把后端部署到服务器#xff0c;后脚测试就出现了问题#xff01;查看控制台报错提示跨域错误#xff1f;但是对于静态资源请求#xff0c;包括登…这几天在部署一个前后端分离的项目使用docker进行部署在本地测试没有一点问题没有前脚刚把后端部署到服务器后脚测试就出现了问题查看控制台报错提示跨域错误但是对于静态资源请求包括登录都没有问题为什么到获取后端数据的时候才开始提示这个问题 但本身我在本地也处理了跨域问题了啊为什么还会出现这个问题难道是我这个处理跨域方法不对于是我在网络上开始搜索跨域问题解决办法有人说是post请求之前会先发送一个option请求必须要对option放行因为我本身配置了过滤器所以也有人说是过滤器优先级问题于是我开始添加相关代码也加了跨域处理过滤器并将优先级设为最高。最后参照关于在SpringBoot项目中创建了过滤器后被拦截下来的请求跨域设置失效的原因及处理_springboot 跨域限制不生效-CSDN博客
大佬的过滤器解决了跨域报错控制台干干净净没有任何问题这可把我乐坏了直接关电脑洗洗睡了打算第二天起床将前端部署好以后结束了但第二天测试发现为什么还是拿不到数据明明跨域解决了啊后来发现是过滤器问题这个过滤器主要是为了判断用户是否登录给予请求放行的。排查到这里的时候我已经开始烦躁了怎么会这样呢明明登陆了啊难道是session的问题因为我将会话内容存储session中一检查果然是session的问题我就开始查询最后将问题锁定到cookie上查看浏览器JSESSIONID发现并没有次次发生改变所以也不是浏览器的问题于是开始查看网络请求发现 在设置cookie的时候出现了问题经过查询发现这是谷歌浏览器的一种安全策略要求跨域请求连接必须安全 可参考Cookie 的 SameSite 跨站限制 - 摸鱼派 (fishpi.cn)
总之在谷歌和Edge测试中都会产生这个问题所以导致session每次都不同使用火狐浏览器不会产生问题但我们肯定希望每个浏览器都可以正常访问呀所以如何解决呢我的解决方法是使用一个代理将请求进行转发这样对于安全策略而言这个请求过程会携带cookie会将此请求当作普通的请求使用代理进行转发就可以解决这个问题但实际上这是不安全的真正安全的是设置SameSiteNone 并使用https协议进行通信但因为只是自己部署的小项目尝试并未继续。如果有感兴趣的小伙伴也可以进行尝试也可以下方留言大家一起探讨。