![](/img/trans.png)
[英]Trouble retrieving JSON form data with jQuery's $.post() method
[英]Retrieving values passed by POST method form
我在表單中遇到POST方法的問題。 我有一個帶有POST方法表單的頁面A,當我提交表單時它進入了頁面b。
現在的問題是,當我刷新時會彈出一個我不想來的警報。 我正在使用HTML和Javascript。
有什么方法可以處理此刷新嗎?
我能想到的一種方法是在頁面b上動態創建一個隱藏表單,並在字段中填充值,每次刷新時,它都會提交該隱藏表單。
請提出建議,並讓我知道是否還有其他整潔的方法。 提前致謝! 基本上我在AS400平台上使用CGIDEV2。 因此,提交頁面a上的輸入表單時,它會調用abc.pgm來寫頁面b。 Cgidev2在各節中編寫html。 它將先寫入/ TOP部分,然后是/ REFRESHFORM。 這些值將填充在abc.pgm中。
PAGE a
/FORM
<form name="input" action="abc.pgm" method="POST">
Username: <input type="text" name="user"><input type="submit" value="Submit"></form>
Page b
/TOP
-----------------
--------------
/REFRESHFORM
<form name="refreshinput" action="abc.pgm" method="POST">
Username: <input type="text" name="user"><input type="submit" value="Submit"></form>
您是否在嘗試避免“確認表單重新提交”警報? 這樣做的通常方法是使用POST / Redirect / GET模式:A頁會將表單發布到服務器,服務器處理數據,然后向用戶發出3xx重定向,從而觸發B頁的GET請求。因此,隨后對頁面B的重新加載將只是常規練習,即沒有警報消息。
如果對提交按鈕使用click事件處理程序,則只需要阻止默認的click動作即可。
$('#Submit').click(function(e){
e.preventDefault();
// submit the form using ajax
// on success go to the page B
...
}
沒有簡單的方法可以避免此問題,但是您可以嘗試使用XMLHttpRequest對象而不是表單。 您將需要編寫一些javascript代碼,但是您的服務器代碼將保持不變。
<!DOCTYPE html>
<html>
<head>
<script>
function Submit()
{
var form = document.getElementById("data-form");
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
form.innerHTML=xmlhttp.responseText;
}
}
xmlhttp.open("POST","abc.pgm",true);
xmlhttp.setRequestHeader("Content-type","application/x-www-form-urlencoded");
xmlhttp.send("userName=" + form["userName"].value + "&userPass=" + form["userPass"].value);
}
</script>
</head>
<body>
<form id="data-form">
Username: <input type="text" name="userName">
Userpass: <input type="text" name="userPass">
<input id="submit" onclick="Submit()" type="button" value="Submit">
</form>
</body>
</html>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.