表单POST没有参数发送

时间:2014-06-30 14:34:14

标签: javascript html 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>

无论出于何种原因,在Firefox网络检查器和处理帖子的HTTPServlet代码中,都没有参数,例如在网络检查器中,它说&#34;此请求没有参数&#34;,在Java中使用getParameter或getParameterNames都返回null。

我尝试过改变JS的形式,看看我经常看到用于添加属性的另一种格式。例如:

hiddenField.type = "hidden";

但这没有任何改变(无论如何,差异是什么?)。我做错了什么?

1 个答案:

答案 0 :(得分:5)

您忘记将hiddenField附加到表单:

form.appendChild(hiddenField);

小旁注:此处缺少双引号(在/agree之前):

form.setAttribute("action", "/agree");