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

来源:互联网 发布:聊天软件市场分析 编辑:程序博客网 时间:2024/05/19 22:51

        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不同的情况。

阅读全文
0 0
原创粉丝点击