node设置res.cookie跨域问题解决
由于后端需要加入验证功能,前端调用接口时后端根据token验证用户是否存在。
每个方法都要验证,为了方便决定使用cookieParser和res.cookie()在后端设置cookie,这样的做法省去了让前端传入token的步骤,省事很多。
真正去做的时候却发现出现以下情况:
Response Headers里面已经有了Set-Cookie了,但是Application里面的cookie却没值
经过一番查找才发现可能是涉及到了跨域问题
于是我设置如下:
前端:在request.js文件
const request = axios.create({ baseURL: process.env.VUE_APP_BASE_SERVER_01 + process.env.VUE_APP_BASE_API, timeout: 15000, withCredentials: true, });
后端:在app.js
app.use(
cors({
credentials: true,
origin: 'http://****:****', // web前端服务器地址
})
);
之后就ok啦
通过这个事例我才知道我上家公司为什么每个接口的后面都要加上id=*****,可能也是为了验证接口访问者的身份,但是没有在后端写入cookie,而是直接在?后面加入用户id。
很显然这个要方便很多。
今天又是学习到了新知识的一天~ Nice ending~
最后一天啦,提前新年快乐虎虎生威~