
一.问题重述
使用的是,前后端分离,前端vue+axios请求,后端使用node搭建服务端接口,遇到的问题是,我通过登录接口吧数据存储型在session,我登录上以后,发现再次验证登录(另一个接口)的时候,
session变为空了,很纳闷为什么。
二.项目步骤,
前端部分的改动:
(1)vue使用vue/cli3搭建脚手架,一开始没有设置代理,各种不行,后来,设置proxy代理,
vue/cli3代理设置的方法:
在项目根目录新建一个文件夹(就是根目录新建就行了,官网这么说的)vue.config.js
里面的内容:
node端部分的修改:
(1)// app.js里面加上允许跨域
解释一下标蓝的三块意思:本来没有res.header("Access-Control-Allow-Credentials", "true"); 这行的,但是不加的话,前端携带的cookie就过不来。两个接口请求的session还是不一样。
但是请求设置有个限制,一旦设置了res.header("Access-Control-Allow-Credentials", "true",那么res.header('Access-Control-Allow-Origin', ‘*’);就会在前端报错。告诉你不能设置成*,
这个origin设置成*的目的是,允许所有的域来跨域访问数据。这个原因我也不知道为啥,但是可以设置多个,你要跨域的域名。我设置成了res.header('Access-Control-Allow-Origin', 'http://localhost:8080');这一块的解释,看这个小哥说的: https://blog.csdn.net/vincent_ling/article/details/51714691
这样前后端都改后,再次在前端两个不同的接口访问后端的req.session,存储的信息就会一样了。