以下代码在第一次触发时工作正常,但是如果我需要再次发送(登录失败..)它会重新发送原始表单数据,即使提交了新值...如何重置并重新加载数据..
我已经尝试了很多东西,包括cache:false(可能只适用于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()">
答案 0 :(得分:0)
在JS中 -
$.ajaxSetup({
cache: false,
headers: {
'Cache-Control': 'no-cache'
}
});
在PHP中
header('cache-control: no-cache');
使用两者来避免缓存问题。
答案 1 :(得分:0)
到目前为止,我提出的最佳解决方案是,如果用户/ pw未经过身份验证,则执行location.reload();
。在这种情况下,重新加载登录页面,Ajax调用将接收提交的新值而不是原始/缓存的...仍然有兴趣学习代码有什么问题,如果有人有输入..?
感谢您的帮助!