Spring通过注释标签解决Ajax跨域访问以及Session失效的问题

6 篇文章 0 订阅

        Sprin4.2之后引入了@CrossOrigin标签专门解决Ajax跨域访问的问题,只需在类上加一个@CrossOrigin(origins = "*", maxAge = 3600)注释即可,值得注意的是,该注解生效的前提是必须在类中每个方法的@RequestMapping中指定请求方式。比如@RequestMapping(value="/XXX",method = RequestMethod.POST)。

         经过这两步之后跨域问题得到了解决,但是有会造成一个新的问题,就是session会失效。这里要注意一个问题,Ajax发送请求url时是以http://ip:8080/xxx 的形式发送的,所以如果项目中需要共享session,本机上测试时最好将访问地址写成http://本机ip:8080/xxx的形式,而不是http://localhost:8080/xxx或http://127.0.0.1:8080/xxx.如果还不行,这时需要在发送Ajax时加一个xhrFields:{withCredentials:true}属性,通知浏览器允许携带session。此时,后台不同的Action之间就可以共享一个session,不会造成各个Action中取到的sessionId不同的情况。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值