我有一个非常简单的HTML页面:
<html>
<head>
<script>
function post() {
var form = document.createElement("form");
form.setAttribute("method", "post");
form.setAttribute("action", "/agree");
var hiddenField = document.createElement("input");
hiddenField.setAttribute("type", "hidden");
hiddenField.setAttribute("name", "location");
hiddenField.setAttribute("value", "URL goes here");
document.body.appendChild(form);
form.submit();
}
</script>
</head>
<body>
<input type="button" value="I agree" onclick="post()">
</body>
无论出于何种原因,在Firefox网络检查器和处理帖子的HTTPServlet代码中,都没有参数,例如在网络检查器中,它说&#34;此请求没有参数&#34;,在Java中使用getParameter或getParameterNames都返回null。
我尝试过改变JS的形式,看看我经常看到用于添加属性的另一种格式。例如:
hiddenField.type = "hidden";
但这没有任何改变(无论如何,差异是什么?)。我做错了什么?
答案 0 :(得分:5)
您忘记将hiddenField
附加到表单:
form.appendChild(hiddenField);
小旁注:此处缺少双引号(在/agree
之前):
form.setAttribute("action", "/agree");