检查注册表单而不重定向?

时间:2017-03-05 19:55:53

标签: ajax node.js mongodb express passport.js

我正在使用护照来注册用户。在注册用户之前,还必须回答一些问题,这些问题可以保存到他们的个人资答案存储在Vars中。

我的问题是,如果用户在提交表单时遇到问题(例如:使用用户名)页面重定向回来,问题中的数据将丢失。在重定向到任何地方之前,我将如何检查以确保表单是否良好?

我尝试过这个但是到目前为止我无法做到我需要做的事情:

   $(function() {
                $("#checkForm").on("submit", function(e) {
                    e.preventDefault();
                    $.ajax({
                        url: $(this).attr("action"),
                        type: 'POST',
                        data: $(this).serialize(),
                        beforeSend: function() {
                            alert('do something to check form?')
                        },
                        success: function(data) {
                            alert('Form is good now register user?')
                            $("#message").hide();
                            $("#response").html(data);
                        }
                    });
                });
            }); 

2 个答案:

答案 0 :(得分:1)

您可以从服务器发送json响应,以检查是否存在任何错误。 示例json响应

{error: true, message: 'User already exists'}
{error: false, message:'Account created successfully'}

然后在ajax中你可以添加

dataType:'json'

然后成功消息检查响应

if(response.error){}else{}

答案 1 :(得分:0)

将用户答案存储在本地存储中。注册成功后,清除存储并重定向到下一页。失败后重定向回到表单页面(检查本地存储中是否存在用户答案)并填写用户答案。

Passport端点示例:

app.post('/form', passport.authenticate('local', { successRedirect: '/',
                                                    failureRedirect: '/form' }));

不重定向:

创建用户搜索端点。在表单提交之前调用它。