Javascript 提交隐藏表单以传递变量时,如何防止下一个表单重新发送数据?
我有一个登录表单总是显示在我的网站的右上角。当发现无效的用户名/密码组合时,将根据服务器响应生成一个隐藏表单并提交,以便重定向到更大的登录名(即login.php)。。。在通过隐藏表单重定向后,当我提交登录login.php登录表单的新尝试时,浏览器警告“要显示此页面,Firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。”很奇怪,此消息仅在成功登录时显示(根据数据库更正用户名/密码) 下面是Javascript函数,用于在尝试登录时处理服务器响应Javascript 提交隐藏表单以传递变量时,如何防止下一个表单重新发送数据?,javascript,php,Javascript,Php,我有一个登录表单总是显示在我的网站的右上角。当发现无效的用户名/密码组合时,将根据服务器响应生成一个隐藏表单并提交,以便重定向到更大的登录名(即login.php)。。。在通过隐藏表单重定向后,当我提交登录login.php登录表单的新尝试时,浏览器警告“要显示此页面,Firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。”很奇怪,此消息仅在成功登录时显示(根据数据库更正用户名/密码) 下面是Javascript函数,用于在尝试登录时处理服务器响应 handleLoginXML
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=login上的表单重新发送隐藏的表单数据?问题是我处理成功登录的方式吗?感谢这就是问题所在
location.reload();
,它就像按刷新按钮一样重新加载页面
一个简单的替代方法是:
window.location.href=window.location.href;
,它应该将用户重定向回相同的URL,而无需重新提交表单。这就是问题所在location.reload();
,它就像点击刷新按钮一样重新加载页面
一个简单的替代方法是:
window.location.href=window.location.href;
,它可以将用户重定向回相同的URL,而无需重新提交表单。您还可以重置表单:document.getElementById(“myForm”).reset();您还可以重置表单:document.getElementById(“myForm”).reset();两个表单都在使用handleLoginXMLSo,当第二个表单成功提交时,页面正在重新加载..可能我需要重定向,我想如果您从页眉登录,重新加载成功,两个表单都在使用handleLoginXMLSo,当第二个表单成功提交时,页面正在重新加载..可能我需要重定向,我想如果您从标题登录,则在调试时重新加载已完成,我发现的唯一问题是,如果用户以某种方式登录example.com/#这将重定向到example.com/#我提交了登录,但在删除#会话显示后,什么也没有发生up@JustinHarris您总是可以这样做window.location.href=
?page=login';`that将用户重定向回您的登录页面。您始终可以将他们重定向到任何页面,如成员仪表板页面等。调试时,我发现的唯一问题是,如果用户以某种方式登录example.com/#这将重定向到example.com/#我提交登录,但在删除会话后,什么也不会发生up@JustinHarris您可以始终执行此操作,window.location.href=
?page=login';`这会将用户重定向回您的登录页面。您可以始终将他们重定向到任何页面,如会员仪表板页面等。。