跨域时session丢失问题的解决

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了跨域时session丢失问题的解决相关的知识,希望对你有一定的参考价值。

参考技术A 项目需求需要前后端分离,做一个登录验证码,但尴尬的是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,默认不让携带

```

以上是关于跨域时session丢失问题的解决的主要内容,如果未能解决你的问题,请参考以下文章

ajax跨域session丢失问题

解决使用elementUI框架el-upload跨域上传时session丢失问题

Vue+elementui +Springboot session丢失解决方案

Spring Boot+AngularJS中因为跨域导致Session丢失

跨域请求,关于后端session会话丢失的解决办法

跨域时如何解决和解决 SockJs 的 /info 路径上的 404