跨越请求,关于后端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参数值

时间: 2025-02-01 09:13:07

跨越请求,关于后端session会话丢失的解决办法(转载)的相关文章

跨域请求,关于后端session会话丢失的解决办法

目前使用前后端分离的模式开发,后端提供跨域接口.前端jsonp调用,绑定数据,但是在该站点下有个人中心模块存在的情况下,服务端的session会话会被跨域请求覆盖改掉 大家都知道tomcat使用cookie中jsessionid来区分客户端session会话 跨域请求接口恰恰有时候响应回来回改变该站点下的jsessionid值,导致服务器每次判断都是一个新的会话 以网站个人中心模块来说,每一个跨域jsonp请求,都会Response 一个cookie值,SET-COOKIE:JSESSIONID

微信小程序开发《三》:微信小程序请求不能使用session的原因及解决办法

本人在前面的微信小程序开发<二>中提到要想在服务端保持状态需要在客户端第一次请求服务器的时候给客户端返回一个sessionid,由客户端在本地保存,下次请求的时候在header里面带上这个sessionid,写到cookie字段里.但是最近发现请求时哪怕每次在header里带上sessionid还是不能拿到同一个session,百度后终于发现坑了(也不知道微信为啥要这么做),原来微信对wx.request这个API做了修改,小程序发起的请求并不是直接请求我们的后台服务器,而是先通过微信的服务器

Sql server 大数据量插入速度慢或丢失数据解决办法

问题描述:我的设备每秒2000条数据插入数据库,2个设备总共4000条,当在程序里面直接用insert语句插入时,两个设备同时插入大概总共能插入约2800条左右,数据丢失约1200条左右,找了好多解决方法,整理了两种效果比较明显的解决办法: 第一种:使用Sql Server函数: 1.将数据组合成字串,使用函数将数据插入内存表,后将内存表数据复制到要插入的表. 2.组合成的字符换格式:'111|222|333|456,7894,7458|0|1|2014-01-01 12:15:16;1111|

使用UdpAppender时出现了“使用了与请求协议不兼容的地址”的解决办法

最近在做一个东西,需要将log4net日志通过UDP传输到其他数据库,其中发送端就用了UdpAppender,但是运行时在控制台总是显示:使用了与请求协议不兼容的地址.解决办法:在C:\Windows\System32\drivers\etc这个目录下,找到hosts文件.把:# localhost name resolution is handled within DNS itself.# 127.0.0.1 localhost# ::1 localhost改为:# localhost nam

兔子--Android Support v4包丢失的解决办法

在开发中,Android Support v4包丢失的解决办法: Project->properties->Java Build Path->Libraries->Add External Jars 中加入sdk目录下的extras/android/support/v4/android-support-v4.jar (如果找不到,则需要用sdk manager下载android support package)

Session丢失的解决办法小结

最近在做ASP.NET项目时,测试网站老是取不出Session中的值,在网上搜索了一下,找到一些解决方法,记录在这里.最后使用存储在StateServer中的办法解决了问题. SessionState 的Timeout),其主要原因有三种 一:有些杀病毒软件会去扫描您的Web.Config文件,那时Session肯定掉,这是微软的说法. 二:程序内部里有让Session掉失的代码,及服务器内存不足产生的. 三:程序有框架页面和跨域情况. 第一种解决办法是:使杀病毒软件屏蔽扫描Web.Config

WAMPServer安装关于MSVCR110.dll丢失的解决办法

安装完成后出现如下提示: 解决办法 请参阅:计算机中丢失 msvcr110.dll 怎么办 为了防止原地址失效,下面简单说下原地址的内容: 到  http://www.microsoft.com/zh-CN/download/details.aspx?id=30679 下载软件,安装完成即可正常启动WAMPServer WAMPServer下载地址:http://www.onlinedown.net/soft/118187.htm

Oracle监听服务无法启动或丢失的解决办法

当用可视化工具连接时,错误提示: 执行请求的操作时遇到错误: IO 错误: The Network Adapter could not establish the connection 1)使用了Cclear或鲁大师等注册表清理工具清理后导致无法启动 无法启动OracleOraDb10g_home1TNSListener服务 解决办法:①打开注册表编辑器,在HKEY_LOCAL_MACHINE/SYSTEM/ControlSet/下的Services和HKEY_LOCAL_MACHINE/SYS

AFNetworking POST 请求参数保存在Body 中的解决办法

1)首先区分一下,get和post的区别 get方法,会将参数放到url中,属于透传,相对于post放到content中的安全性低 2)使用AFNetworking,默认HTTPMethodsEncodingParametersInURI里面包含的只有`GET`, `HEAD`, 和 `DELETE` .不知道情况的情况下使用POST方法的话,会将用户传递的参数放到Body里面,导致服务端JSP通过request.getParameters()获取不到参数. 3)通过xcode定位代码,发现在r