使用struts 1.3:
创建应用程序部署详情:
JavaScript的:
function linkPage(link) {
$(".submenu").css("display", "none");
document.location = "${pageContext.request.contextPath}/"+link;
}
Struts链接类型:(无任何问题)
<html:link action="/someAction.do?method=showSomthing" styleId="menuselect2">
<span>Status</span>
<span class="icon-img">
<img src="new.png" />
</span>
</html:link>
超链接:(我们遇到问题)
<a href="#" id="menuselect2" onclick="linkPage('someAction.do?method=showSomthing')">
<span>Status</span>
<span class="icon-img">
<img src="new.png" />
</span>
</a>
来自Fiddler的信息:
IE请求:
GET ://xyz.com/someAction.do?method=showSomthing HTTP/1.1
Accept: text/html, application/xhtml+xml, */*
Referer: ://xyz.com/login.do;jsessionid=bVkSxQI7CGT3ZJBG- 5m27S85.undefined?method=authenticate
Accept-Language: en-US
User-Agent: Mozilla/5.0 (Windows NT 6.1; Trident/7.0; rv:11.0) like Gecko
Accept-Encoding: gzip, deflate
Connection: Keep-Alive
DNT: 1
Host: xyz.com
IE回复:
HTTP/1.1 302 Moved Temporarily
Server: Apache-Coyote/1.1
Location: ://xyz.com/error_page.jsp
Content-Length: 0
Date: Thu, 31 Jul 2014 10:22:25 GMT
Chrome请求:
GET ://xyz.com/someAction.do?method=showSomthing HTTP/1.1
Host: xyz.com
Connection: keep-alive
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/38.0.2107.2 Safari/537.36
Referer: :// xyz.com/login.do?method=authenticate
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
Cookie: JSESSIONID=YXaZMNkM6BQl7M46fAjfS5Rw.undefined
Chrome响应
HTTP/1.1 200 OK
Server: Apache-Coyote/1.1
X-Powered-By: JSP/2.2
Content-Type: text/html;charset=ISO-8859-1
Transfer-Encoding: chunked
Date: Thu, 31 Jul 2014 10:29:01 GMT
该应用程序在开发和测试服务器中都有效。但在生产中获取会话超时错误。生产的不同之处在于我们在User-agent和JBoss服务器之间有一个Apache HTTPd进程。
这个问题有解决办法吗?
由于
答案 0 :(得分:1)
问题是由于cookie问题,IE运行时默认安全级别设置为中等。由于httpd和JBoss在不同的机器上,我们松开了cookie。 struts标签通过添加jsessionid自动重写URL,因此没有会话跟踪问题。