2014-06-30 31 views
0

送我有一個非常簡單的HTML頁面:表單POST被不帶參數

<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> 

無論出於何種原因,無論是在火狐網絡檢查,並在HTTPServlet的代碼處理後,有沒有參數,例如在網絡檢查器中它說「沒有這個請求的參數」,並且在Java中使用getParameter或getParameterNames都返回null。

我試着改變JS的形式一點點,看看我經常看到用於添加屬性的另一種格式。例如:

hiddenField.type = "hidden"; 

但是這並沒有改變(反正有什麼區別?)。我究竟做錯了什麼?

回答

5

你忘了hiddenField追加到形式:

form.appendChild(hiddenField); 

小邊注:這裏有缺少一個雙引號(前/agree):

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

那麼這將做到這一點。謝謝! – elykl33t

+0

@ elykl33t:需要更多幫助?如果答案足夠了,請不要忘記接受答案。 –