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:
服务器会将localhost
和127.0.0.1
识别为两个不同的客户端!
前端项目请求数据时,如果分别使用localhost
和127.0.0.1
访问两个接口,那么node.js服务器会把这两次访问看作两个不同的客户端的请求。
因此,在前端项目中一定要统一使用localhost
或127.0.0.1
!
来源:CSDN
作者:fuux
链接:https://blog.csdn.net/qq_42586895/article/details/104080637