有人可以建议吗,我整周都在努力解决这个问题,但仍然没有运气。
我的问题是网络应用程序。当用户单击一个链接时,在单击特定链接后(其他链接工作正常),IE8 浏览器向服务器发送三个 HTTP 请求。它假设只发送一个请求。
第一个 HTTP 请求是 POST - Header 和 Body 数据正确(所有参数看起来都不错)
第二个 HTTP 请求是 POST - Header 和 Body 数据正确(所有参数看起来都不错)
第三个 HTTP 请求是 GET - Header 中没有 Referer,正文中没有任何内容(因为它是 GET)。
第三个请求导致 Servlet 抛出 NULL 指针异常,因为 Servlet 尝试读取 FORM 参数。
所有的请求都发送到同一个 Servlet。这三个请求在 1 - 2 秒内发生。我确定这与多次点击无关。
用户正在使用带有 Window XP 的 IE8。这无法在我的环境中重现。
我在互联网上研究了一个星期,我注意到 IE8 的一个已知问题会创建对服务器的双重请求,这种情况似乎与 Javascript 中的“.submit()”有关。我已经非常详细地研究了我的代码,我相信事实并非如此。
这是链接的样子。请建议。
<a href=\"#\" onClick=\"test.goToNextPage();return false;\">Test link</a>
this.goToNextPage = function()
{
// do some paramter manipulation here (such as customer data),
//not related to this issue
createForm().submit();
}
function createForm()
{
bcForm = document.createElement("form");
bcForm.setAttribute("method", "POST");
//real code add some hidden parameter(e.g. action, Form ID) and value here...
document.body.appendChild(bcForm);
return bcForm;
}