Javascript 提交隐藏表单以传递变量时,如何防止下一个表单重新发送数据?

Javascript 提交隐藏表单以传递变量时,如何防止下一个表单重新发送数据?,javascript,php,Javascript,Php,我有一个登录表单总是显示在我的网站的右上角。当发现无效的用户名/密码组合时,将根据服务器响应生成一个隐藏表单并提交,以便重定向到更大的登录名(即login.php)。。。在通过隐藏表单重定向后,当我提交登录login.php登录表单的新尝试时,浏览器警告“要显示此页面,Firefox必须发送重复先前执行的任何操作(如搜索或订单确认)的信息。”很奇怪,此消息仅在成功登录时显示(根据数据库更正用户名/密码) 下面是Javascript函数,用于在尝试登录时处理服务器响应 handleLoginXML

我有一个登录表单总是显示在我的网站的右上角。当发现无效的用户名/密码组合时,将根据服务器响应生成一个隐藏表单并提交,以便重定向到更大的登录名(即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=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';`这会将用户重定向回您的登录页面。您可以始终将他们重定向到任何页面,如会员仪表板页面等。。