IE中的JSP页面没有收到POST参数。适用于Chrome

时间:2018-02-16 20:09:42

标签: jsp internet-explorer getparameter

一个非常简单的设置。 HTML表单

<form id="ChromeEmailForm" method="POST" action="ChromeEmail.jsp" target="ChromeEmailWindow" >
    <input type="hidden" name="emailSubject" value="something" />
    <input type="hidden" name="htmlBody" value="something" />
</form>

由JS提交:

document.getElementById('ChromeEmailForm').submit();

并使用以下命令在JSP中检索:

<%=request.getParameter("emailSubject")%>

在Chrome中运行良好,但返回&#34; null&#34;在ChromeEmail.jsp页面的IE(11)中。两个浏览器都返回页面。

尝试添加JSP以强制编码,但没有区别:

<%@ page contentType="text/html; charset=utf-8"%>
<%request.setCharacterEncoding("UTF-8");%>

这是一个已知的IE功能吗?

1 个答案:

答案 0 :(得分:0)

原来这个 IS 是一个IE功能,如下所示: Challenge-Response Authentication and Zero-Length Posts

来自文章:

  

出于性能原因,如果Internet Explorer希望立即收到带有凭据质询的HTTP / 401响应,则它不会立即传输POST正文。如果没有这种优化,IE将被迫多次重新上载(可能很大的)POST主体,浪费带宽。

这解释了为什么POST数据在身份验证站点中丢失。