【踩坑】spring每次请求后session不一样导致无法在服务器保存信息
根据网上的资料,若想在服务器用session保存一些信息,方法如下:
    public Xclass Xmethod(HttpServletRequest request, HttpSession session, Params parameterName){
            session.setAttribute("keyName", parameterName);
        }
    }
这样,想获取keyName键的值,可以使用语句:
public void Ymethod(HttpServletRequest request, HttpSession session) {
    String keyValue = (String) session.getAttribute("keyName");
    // do somethong
}
但是使用ajax获取数据进行测试,keyValue总是null。
原因:
每次请求服务器所对应的session不一样,导致session.setAttribute()方法保存的信息保存在不同的session中。
解决方法:
1. 后台
在控制器前使用@CrossOrigin注解,设置allowCredentials属性为true,即:
@CrossOrigin(allowCredentials="true")
@RestController
@RequestMapping("/xxx")
public class xxxController {
******
}
2. 前端
ajax请求中,加入 xhrFields:{withCredentials:true} , 即:
$.ajax({
    type: get,
    url: "http://localhost"
    data: {
        data1: "whatever"
    },
    dataType: "json",
    ***
    xhrFields:{
        withCredentials:true
    },
    ***
    success: function(data){
        // do something
    }
});
然后同一浏览器发出ajax在后台就能使用同一session,从而共享相同的信息了。
【踩坑】spring每次请求后session不一样导致无法在服务器保存信息的更多相关文章
- 踩坑系列:MySql only_full_group_by配置,竟导致所有应用报错?
		
1. 踩坑经历 一个很平常的下午,大家都在埋头认真写bug呢,突然企业微信群里炸锅了,好多应用都出现大量的Error日志,而且都报同一个错误,就是下面这个: Caused by: com.mysql. ...
 - 踩坑 Spring Cloud Hystrix 线程池队列配置
		
背景: 有一次在生产环境,突然出现了很多笔还款单被挂起,后来排查原因,发现是内部系统调用时出现了Hystrix调用异常.在开发过程中,因为核心线程数设置的比较大,没有出现这种异常.放到了测试环境,偶尔 ...
 - Bootstrap Table踩坑——设置多级表头后只显示第一级表头问题解决办法
		
今天设置了Bootstrap Table的复杂表头,设置了多级表头(两行列名),但是只能显示第一级表头(第一行的列名),第二级的表头被第一级的表头覆盖.但是我仿照其他网上的其他设置复杂表头例子都能正常 ...
 - 踩坑记录-用koa-session设置session报错
		
报如下错误: 原因 设置signed: true后,它就会寻找req.secret(一个秘钥字符串),进行加密 allen返回浏览器. const SESS_CONFIG = { key: 'kkb: ...
 - python踩坑系列——报错后修改了.py文件,但是依然报错
		
一开始.py文件中的函数名大小写错了,但是在终端是对的,报错: 'module' object has no attribute '某函数名' 后来就去修改.py文件.结果重新import该.py文件 ...
 - OpenCV+Qt+CMake安装+十种踩坑
		
平台:win10 x64+opencv-3.4.1 + qt-x86-5.9.0 + cmake3.13.4 x64 OpenCV+Qt+CMake安装,及目前安装完后打包:mingw32-make时 ...
 - 安装mysql5.7后无法启动,/var/run/mysqld 目录每次重启后都需要手动去创建--终极解决方案
		
鉴于很多童鞋反应,mysql5.7安装后出现无法启动,建立/var/run/mysqld 并赋权mysql用户解决了启动的问题,但是重启系统后又出现无法启动的问题,导致/var/run/mysqld ...
 - 分析下为什么spring 整合mybatis后为啥用不上session缓存
		
因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...
 - 2017年2月16日 分析下为什么spring 整合mybatis后为啥用不上session缓存
		
因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存. 习惯是本地缓存自己用map写或者引入第三方的本地缓存框架ehcache,Guava 所以提出来纠结下 实验 ...
 
随机推荐
- ACM学习历程—HDU 2112 HDU Today(map && spfa && 优先队列)
			
Description 经过锦囊相助,海东集团终于度过了危机,从此,HDU的发展就一直顺风顺水,到了2050年,集团已经相当规模了,据说进入了钱江肉丝经济开发区500强.这时候,XHD夫妇也退居了二线 ...
 - 【Lintcode】103.Linked List Cycle II
			
题目: Given a linked list, return the node where the cycle begins. If there is no cycle, return null. ...
 - CF 908D New Year and Arbitrary Arrangement——期望dp
			
题目:http://codeforces.com/contest/908/problem/D 注意是子序列.加一个a对ab个数无影响:加一个b使ab个数多出它前面的a那么多个.所以状态里记录有多少个a ...
 - NOI.AC 31 MST——整数划分相关的图论(生成树、哈希)
			
题目:http://noi.ac/problem/31 模拟 kruscal 的建最小生成树的过程,我们应该把树边一条一条加进去:在加下一条之前先把权值在这一条到下一条的之间的那些边都连上.连的时候要 ...
 - jmeter设置默认为中文
			
1.编辑jmeter目录/bin/jmeter.porperties文件 2.点击将language的注释去掉,并将值变为zh_CN保存.
 - IOS技能要求
			
iOS专业技能: 拥有独立开发iOS APP应用的能力,并且独立开发过多款应用:熟练掌握iOS主流界面布局设计,基本控件和自定义控件的使用,事件处理及事件分发机制:熟练掌握工厂.代理.观察者.单例等多 ...
 - 关于System类中out属性 实例化的问题
			
System类中out属性的声明是这样的: public final static PrintStream out = nullPrintStream(); private static PrintS ...
 - [poj2151]Check the difficulty of problems概率dp
			
解题关键:主要就是概率的推导以及至少的转化,至少的转化是需要有前提条件的. 转移方程:$dp[i][j][k] = dp[i][j - 1][k - 1]*p + dp[i][j - 1][k]*(1 ...
 - vmware中centos6.5无法启动拷贝出里面的资料的方法
			
先说一下我的环境:windows7-x64位机器下安装的vmware虚拟机,里面安装的是centos6.5-x64位的系统. 系统崩溃的原因:从cenos拖拽一个文件到win7下,结果就卡死了.整个系 ...
 - js学习笔记2:循环和try/catch/throw
			
今天学习了js的比较.if/else.switch/case和各种循环,这些东西每种语言都大同小异,没什么好看的,重点说一下js的循环. JavaScript 支持不同类型的循环: for - 循环代 ...