下面的代碼在第一次啓動時工作的很完美,但是如果我需要再次發送(登錄失敗..)它會重新發送原始表單數據,即使提交了新的值也是如此......如何重置並重新加載數據..爲什麼ajax調用緩存表單數據?
我已經嘗試了大量的東西,包括緩存:假(這大概只適用於GET)和搞亂網址,以避免瀏覽器緩存...迄今沒有運氣。請幫助;-)
function procLogin() {
$.ajax({
type: 'POST',
url: 'http://www.lalala.com/lalala/auth.php?' + Math.random(),
crossDomain: true,
data: $("#loginForm").serialize(),
dataType: 'json',
async: false,
success: function(response) {
if (response.statusTFD == 'success') {
alert("Success");
} else if (response.statusTFD == 'error') {
alert("Authentication Invalid. Please try again!");
} else if (response.statusTFD.substring(0, 18) == 'Connection Failed:' || response.statusTFD.substring(0, 6) == 'Error:') {
alert(response.statusTFD);
} else {
alert("!¤#%¤!#" + response);
}
},
error: function(error) {
//alert(response.success);
alert('Could not connect to the database' + error);
}
});
return false;
}
上述被調用的onsubmit:
<form id="loginForm" method="POST" onsubmit="procLogin()">
您是否使用IE進行測試?即使是IE的新版本也因緩存XHR請求而臭名昭着。 編輯 - 我錯過了你已經在嘗試Math.random()技巧,所以我必須進一步調查。 – 2014-09-24 17:52:09
如何調用procLogin()?謝謝 – guest271314 2014-09-24 18:14:34
不要使用'async:false' – Bergi 2014-09-24 18:21:49