很多人在登陆的时候会发现报错:
弹框错误信息是:Session Error
解决办法是先打开 WEB-INF/web.xml文件
<servlet> <servlet-name>dwr-invoker</servlet-name> <servlet-class>org.directwebremoting.servlet.DwrServlet</servlet-class> <init-param> <param-name>debug</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>activeReverseAjaxEnabled</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>initApplicationScopeCreatorsAtStartup</param-name> <param-value>true</param-value> </init-param> <init-param> <param-name>maxWaitAfterWrite</param-name> <param-value>500</param-value> </init-param> <load-on-startup>1</load-on-startup> </servlet>
解决办法:
在**<load-on-startup>
1</load-on-startup>
**加上如下代码:
<init-param> <param-name>crossDomainSessionSecurity</param-name> <param-value>false</param-value> </init-param>*
至于原因,总是有人纠结于为什么?
这个问题,确实不好确诊,因为每个人使用的技术框架不同。
原因一:
这是因为同源策略的问题,为了WEB环境的安全,在WEB脚本语言中不允许读取不同源的数据,同源包括相同协议,相同域名和相同端口三个条件,而ajax的异步处理方式跳过了这个限制,为了安全限制,它设置为sameDomainAccess。
原因二:
如果使用到了dwr,那就有可能是DWR的版本与服务器Tomcat不兼容的问题。要么升级DWR版本,要么是降低Tomcat的版本。但是也可以采用我在上面加入的那句配置,也可以解决,只是验证的安全
分享是快乐的,也见证了个人成长历程,文章大多都是工作经验总结以及平时学习积累,基于自身认知不足之处在所难免,也请大家指正,共同进步。