分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 代码编程

ajax --- 解决ajax跨域请求导致session失效的问题

发布时间:2023-09-06 02:24责任编辑:沈小雨关键词:跨域

起因:http是无状态的,因此我们通常需要用到cookie以及session来保存状态,session是在服务器端存储的,会和cookie一起使用,设置了session之后,会发送给浏览器一个cookie,这个cookie是session_id,当再次请求的时候浏览器会将它发送给服务器,以此来找到对应的session.
但是,我们实际使用的时候通常会用到跨域,就是向不同的域发起请求,但是默认情况下此时cookie是不会发送给服务器的,此时就导致了丢失session_id,从而导致了session的值为undefined。解决方案如下:
首先,前端页面发起ajax请求时,加上参数:

withCredentials: true,

像这样

$.ajax({ ???type: ???url:‘http://localhost:8080/user-login‘, ???data: ???dataType:‘JSON‘,//注意哦,这一句要记得加上哦,我就是因为没加这句还查了好久的 ???withCredentials: true, ???success: ???error:})

我使用的后台语言是node.js,在node.js中使用cors跨域 
在app.js中加上(注意接口的顺序哦):

app.all(‘*‘, function(req, res, next) { ???res.header("Access-Control-Allow-Origin", "这里填可以跨域访问的域,不能填*哦"); ???res.header("Access-Control-Allow-Headers", "X-Requested-With"); ???res.header("Access-Control-Allow-Methods","PUT,POST,GET,DELETE,OPTIONS"); ???res.header("X-Powered-By",‘ 3.2.1‘); ???res.header("Access-Control-Allow-Credentials",true); ???res.header("Content-Type", "application/json;charset=utf-8"); ???next();});

  ok,和bug一站到底,加油

ajax --- 解决ajax跨域请求导致session失效的问题

原文地址:https://www.cnblogs.com/yuerdong/p/10021623.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved