我的网站右上角总是显示一个登录表单。当发现无效的用户名/密码组合时,会根据服务器响应生成隐藏表单并提交,以便重定向到更大的登录名(即login.php(……当我通过隐藏表单重定向后提交登录login.php登录表单的新尝试时,浏览器会警告";要显示此页面,Firefox必须发送重复先前执行的任何操作(如搜索或订单确认(的信息"足够好的是,此消息仅在成功登录时显示(根据数据库正确的用户名/密码(。
以下是Javascript函数,用于处理服务器在尝试登录时的响应
handleLoginXML: function(xml){
var loginValue = xml.getElementsByTagName('info')[0].firstChild.nodeValue;
if(loginValue === "success"){
location.reload();
}
if(loginValue === "failed") {
this.post('?page=login', { login_error : 'Invalid Email/Password'});
}
},
此外,这是在失败登录时提交隐藏表单的post函数
post: function(path, params, method='POST'){
const form = document.createElement('form');
form.method = method;
form.action = path;
for(const key in params) {
if(params.hasOwnProperty(key)){
const hiddenField = document.createElement('input');
hiddenField.type = 'hidden';
hiddenField.name = key;
hiddenField.value = params[key];
form.appendChild(hiddenField);
}
}
document.body.appendChild(form);
form.submit();
}
我怎样才能阻止表单打开?page=重新发送隐藏表单数据后登录?问题是我处理成功登录的方式吗?感谢
这就是这里的问题location.reload();
,它像点击刷新按钮一样重新加载页面。
一个简单的替代方案是:window.location.href = window.location.href;
,它应该在不重新提交表单的情况下将用户重定向回同一个URL
您还可以重置表单:document.getElementById("myForm"(.reset((;