簡體   English   中英

Javascript POSTing HTML表單

[英]Javascript POSTing HTML form

我需要使用單擊按鈕將一些數據發布到Web服務。 我不想顯示從服務器收到的回復,這是一個簡單的HTML表單。 所以我想出了以下代碼:

<!DOCTYPE html>

<html>
<head>
<script>
function sendData() {

    var form = document.createElement('form');
    form.action = "https://posttestserver.com/post.php";
    form.method = 'POST';


    var input = document.createElement('input');
    input.type = 'hidden';
    input.name = "args";
    input.value = "on";
    form.appendChild(input);

    form.submit();
    alert("Submited!");
}


</script>
</head>
<body>

<button onclick="sendData();">Click Me!</button>

</body>
</html>

請告訴我究竟出了什么問題,因為它沒有發布任何數據。

你有什么理由使用JavaScript來創建表單嗎? 它只是不發布輸入或表單無法提交? 您始終可以使用Web Inspect工具查看請求。

嘗試打開W​​eb檢查器,查看控制台是否存在任何JavaScript錯誤。

您發布的數據位於http://www.posttestserver.com/data/2015/12/16/21.17.23451563624

plz,看圖像。 在此輸入圖像描述

您可以使用ajax發布數據而不是表單提交。 params = {'input':'on'} $ .ajax(url,post,params,succ,err)

根據我的理解解決方案:

  1. 如果要將腳本放在head標記中,請參閱“ 我應該在哪里放置<script>標記到HTML標記中? ”。 結論是將腳本放在head標記中並使用async或defer屬性

  2. 在提交表單之前將表格附加到您的身體。

     document.body.appendChild(form); 
  3. 在body標簽前放置腳本。

不知道為什么要使用JS創建表單只是為了在使用ajax時將一些數據發布到服務器。 如前面的答案中已經提到的,您可以使用jQuery。 如果您不願意使用jQuery,則可以使用XML HTTP Request(XHR)對象

使用jQuery的簡單解決方案是

$.ajax({
    type: 'POST',
    url: 'https://posttestserver.com/post.php',
    data: {'args': 'on'}
});

由於您希望在單擊按鈕時發送數據,因此可以在按鈕單擊時觸發事件

$('button').on('click', function() {
    $.ajax({
        type: 'POST',
        url: 'https://posttestserver.com/post.php',
        data: {'args': 'on'}
    });
});

我的主要目標是

我不想顯示從服務器收到的回復

所以我在頁面中添加了一個IFRAME,然后將其添加為表單的目標

<form action="MYLINK" method="POST" target="hidden-form">
...
</form>
<IFRAME style="display:none" name="hidden-form"></IFRAME>

現在服務器的回復不可見

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM