项目中后台设置set-cookie失效

首先介绍一下项目中用到的东西:

  1. 前台iview-admin框架
  2. java后台,使用shiro作为登录的框架。

想要实现的是登录功能。
shiro用的是session+cookie的机制,因此需要进行cookie的设置和返回给后台。
然后发现个问题:


后台有setCookie头部

后台明明都有set-cookie头部,但是很无语的是,浏览器的cookie存储那边找不到任何的cookie。用console.log(document.cookie)也得到是''。

然后开始找错。

  1. 发现axios没有设置withCredentials为true,加上
  2. 以为是后台的问题,后面发现后台该有的设置都有了,包括Access-Control-Allow-Origin设置不为'*'(动态设置为请求地址),Access-Control-Allow-Credentials为true, Access-Control-Allow-Methods为POST(动态设置为POST)
  3. 为了排除是后台的错误,我把前端的网络请求部分单独拿出来放到一个index.html里面。发现set-cookie和返回cookie正常进行
    然后就很难受了。翻来看去,该有的设置都有了。但是set-cookie就是失败。之后找了一天的答案(怪自己搜索能力太差)。
    终于在github上找到了解决方法issue 962,按照上面的指示,去掉main.js中的mock.js引入.....
//if (process.env.NODE_ENV !== 'production') require('@/mock')

好了,世界和平

你可能感兴趣的:(项目中后台设置set-cookie失效)