很多人在登陆的时候会发现报错:

弹框错误信息是: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的版本。但是也可以采用我在上面加入的那句配置,也可以解决,只是验证的安全性能不太好!

作者: 杨校

Java互联网交流学习群:827829292