情景描述:测试环境,设置session过期时间为1分钟。在session过期后,执行一个ajax请求,结果在Firebug中,出现如下错误提示:
这是ajax的跨域问题。首先想到的解决方案是使用jsonp,可能是我用的不对吧,没能解决问题。
不过,现在想一想,如果采用jsonp把这个问题解决了,难道我要把项目中所有的ajax都改为jsonp吗?如果是这样,那就疯了。
通过度娘,找到了靠谱的方法,这是原文地址 http://www.cnblogs.com/syjkfind/archive/2015/03/26/4370092.html
部分原文如下:
【参考的解决方法】
a.在session超时的情况下发ajax请求。返回200正常,并在json中指定状态码302和login.action地址
b.访问login.action。302重定向指向CAS服务器
c.访问CAS服务器登录授权。302重定向回login.action

本文介绍了如何解决基于CAS的SSO单点登录系统中,session过期后ajax请求出现跨域问题。在session超时时,通过返回特定状态码和重定向地址,引导用户进行CAS登录授权,最终实现ajax请求的自动登录和页面刷新。避免了对所有ajax请求进行jsonp改造,简化了实现过程。
2577

被折叠的 条评论
为什么被折叠?



