node.js中session存储的数据为undefined问题(已解决)

node.js中session存储的数据为undefined问题(已解决)— 两种解决方案

问题:

当客户端通过一个接口在服务器session中存储数据后,通过另一个接口再次访问session,打印出来的结果是undefined

分析:

在保证服务器代码没问题的情况下,访问不到session中的数据,原因一定是:服务器把客户端的两次访问当成两个不同的客户端。

解决方案1:

前端一定要解决跨域问题!
这里我距离vue-cli中的跨域问题解决方案:
config文件里的index.js中的proxyTable修改为:

proxyTable: {
      '/api': {
        target: 'http://localhost:3000',  // 接口的域名
        // secure: false,  // 如果是https接口,需要配置这个参数
        changeOrigin: true,	// 如果接口跨域,需要进行这个参数配置,为true的话,请求的header将会设置								为匹配目标服务器的规则(Access-Control-Allow-Origin)
        pathRewrite: { //本身的接口地址没有 '/api' 这种通用前缀,所以要rewrite,如果本身有则去掉 
          '^/api': ''
        }

设置后我们请求接口就要将localhost:3000改为/api

const BASE_URL='/api'	// 基础路径
// 请求数据
export const getHomeCasual = ()=> ajax(BASE_URL + '/api/homecasual');

解决方案2:

服务器会将localhost127.0.0.1识别为两个不同的客户端!

前端项目请求数据时,如果分别使用localhost127.0.0.1访问两个接口,那么node.js服务器会把这两次访问看作两个不同的客户端的请求。

因此,在前端项目中一定要统一使用localhost127.0.0.1!

发布了6 篇原创文章 · 获赞 6 · 访问量 338

猜你喜欢

转载自blog.csdn.net/qq_42586895/article/details/104080637