跨域请求,关于后端session会话丢失的解决办法
目前使用前后端分离的模式开发,后端提供跨域接口、前端jsonp调用,绑定数据,但是在该站点下有个人中心模块存在的情况下,服务端的session会话会被跨域请求覆盖改掉
大家都知道tomcat使用cookie中jsessionid来区分客户端session会话
跨域请求接口恰恰有时候响应回来回改变该站点下的jsessionid值,导致服务器每次判断都是一个新的会话
以网站个人中心模块来说,每一个跨域jsonp请求,都会Response 一个cookie值,SET-COOKIE:JSESSIONID=XXXX,如下图:
再看服务端,前端刷新一次也没,后端服务会话id都不是同一个sessionid,所有后端所有的请求都是未登录,这就导致前端发送的请求,后端无法拿到当前个人用户信息
目前服务端部署都采用tomcat,所以修改办法是在conf/context.xml文件中,设置sessionId的cookieName别名,不和默认的jsessionid一直,如下:
最终修改好后,再看服务器的cookie值,服务端使用session取的cookie值是刚刚设置的别名cookie值SHGJSESSIONID,所以不受跨域接口影响
最终服务端请求的session会话能保证是同一个,所以也能取到当前登录的个人信息
更多tomcat参数设置值请参考 tomcat-context参数值
转载于:https://www.cnblogs.com/xiaoymin/p/6104018.html
跨域请求,关于后端session会话丢失的解决办法相关推荐
- 跨越请求,关于后端session会话丢失的解决办法(转载)
目前使用前后端分离的模式开发,后端提供跨域接口.前端jsonp调用,绑定数据,但是在该站点下有个人中心模块存在的情况下,服务端的session会话会被跨域请求覆盖改掉 大家都知道tomcat使用coo ...
- 利用Nginx轻松实现Ajax的跨域请求(前后端分离开发调试必备神技)
利用Nginx轻松实现浏览器中Ajax的跨域请求(前后端分离开发调试必备神技) 前言 为什么会出现跨域? 造成跨域问题的原因是因为浏览器受到同源策略的限制,也就是说js只能访问和操作自己域下的资源,不 ...
- 【安全牛学习笔记】CSRF跨站请求伪造攻击漏洞的原理及解决办法
CSRF跨站请求伪造攻击漏洞的原理及解决办法 CSRF,夸张请求伪造漏洞 漏洞的原理及修复方法 1.常见的触发场景 2.漏洞原理:浏览器同源策略 3.DEMO 4.漏洞危害 5.如何避免&修复 ...
- Ajax跨域请求保证同一个session的问题
根据浏览器的保护规则,跨域的时候我们创建的sessionId是不会被浏览器保存下来的,这样,当我们在进行跨域访问的时候,我们的sessionId就不会被保存下来,也就是说,每一次的请求,服务器就会以为 ...
- ASP.NET 2.0中的Session状态丢失的解决办法
ASP.NET 2.0引进了不让脚本使用的HttpOnly的cookie,,通过客户端脚本执行的某些操作可能会使session丢失. 解决办法:在global.asax中设置HttpOnly属性为Fa ...
- ajax 请求_前端后分离Ajax跨域请求保证Session一致
JAVA码牛牛,程序员学习指南 前后端分离的项目,使用Ajax请求一般都出现跨域的问题. 跨域的时候所创建的session是不会被浏览器保存下来的.所以每次进行跨域请求时,服务器都认为不是同一个浏览器 ...
- php 跨域 验证_php 前后端分离开发进行跨域请求时ajax发送验证参数token的header头解决方法...
php前后端分离开发中要实现前后端参数信息交互,必须解决token标识验证问题. 步骤如下: 1.前端ajax发送请求时,要设置一个自定义header头.代码如下: $.ajax({ url:&quo ...
- 解决使用elementUI框架el-upload跨域上传时session丢失问题
解决使用elementUI框架el-upload跨域上传时session丢失问题 参考文章: (1)解决使用elementUI框架el-upload跨域上传时session丢失问题 (2)https: ...
- 易语言做后端 实现跨域请求
首先说下原理: 解决跨域调用服务并设置headers 主要的解决方法需要通过服务器端设置响应头.正确响应options请求,正确设置 JavaScript端需要设置的headers信息 方能实现. 1 ...
最新文章
- 数据库_数据库篇-第一章:数据库基本概念
- python流程控制-python 流程控制语句
- 理解Android Binder机制(3/3):Java层
- 微服务架构设计模式 pdf_六种常用的微服务架构设计模式之一: 入门级模式...
- ubuntu将GNU nano换成vim
- IIS7.5配置对PHP的支持
- 为什么我们需要使用Pandas新字符串Dtype代替文本数据对象
- 实验二《Java面向对象程序设计》实验报告
- spring中的BeanFactory和FactoryBean的区别与联系
- COMSOL数据导入的案例
- search_web_resources
- 显卡更新显示计算机无法识别,电脑无法识别独立显卡
- python读取定位_如何使用python定位和读取Data Matrix代码
- TextClock 24小时制
- JavaScript实现在线进制转换工具网站 -toolfk程序员工具网
- 最长公共子序列(LCS)的C++实现
- 三、nginx服务的nginx.conf的参数配置解析
- 倒计时H5页面源码(2018年除夕)
- iOS开发icon图标设置
- 52单片机与MH-Sensor-Series模块使用简单检测车轮转速