表单POST没有参数发送

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)

但这没有任何改变(无论如何有什么不同?).我究竟做错了什么?

Pat*_*man 5

你忘了把它附加hiddenField到表格上:

form.appendChild(hiddenField);
Run Code Online (Sandbox Code Playgroud)

小旁注:这里缺少双引号(之前/agree):

form.setAttribute("action", "/agree");
Run Code Online (Sandbox Code Playgroud)