ely*_*33t 0 html javascript http
我有一个非常简单的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>
Run Code Online (Sandbox Code Playgroud)
无论出于何种原因,在Firefox网络检查器和处理帖子的HTTPServlet代码中,都没有参数,例如在网络检查器中它显示"此请求没有参数",而在Java中使用getParameter或getParameterNames都返回null.
我尝试过改变JS的形式,看看我经常看到用于添加属性的另一种格式.例如:
hiddenField.type = "hidden";
Run Code Online (Sandbox Code Playgroud)
但这没有任何改变(无论如何有什么不同?).我究竟做错了什么?
你忘了把它附加hiddenField到表格上:
form.appendChild(hiddenField);
Run Code Online (Sandbox Code Playgroud)
小旁注:这里缺少双引号(之前/agree):
form.setAttribute("action", "/agree");
Run Code Online (Sandbox Code Playgroud)