跨域时session丢失问题的解决
2020-09-04 本文已影响0人
无崖老师
项目需求需要前后端分离,做一个登录验证码,但尴尬的是node中,因为跨域不能携带sessionId的原因,导致session丢失,node不能获取验证码,没法做验证
经过将近半个小时的折腾最终解决,特此保留
我的后端使用的是node的express框架,在app.js中进行如下设置
```
app.all('*', function (req, res, next) {
res.header('Access-Control-Allow-Origin', 'http://127.0.0.1:5500'); //必须写上自己的域名,不能为*
res.header('Access-Control-Allow-Headers', 'Content-Type, X-Requested-With');
res.header('Access-Control-Allow-Methods', 'PUT, POST, GET, DELETE, OPTIONS');
res.header('Access-Control-Allow-Credentials', 'true');//允许携带cookie
if (req.method == 'OPTIONS') {
res.send(200);
}
else {
next();
}
});
```
前端使用的是axios中进行了,如下的设置
```
axios.defaults.withCredentials = true;//设置允许携带cookie,默认不让携带
```