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

陌路散爱 提交于 2020-01-24 17:14:40

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!

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!