代码之家  ›  专栏  ›  技术社区  ›  Abhinav Jha

如何在jquery帖子的回调中重定向

  •  4
  • Abhinav Jha  · 技术社区  · 6 年前

    收到数据后,我的主页不会重定向到登录页面。 以下是主页js:

    $(function(){
        const submit = $('#submit');
        const save = $('#save');
        const email = $('#email');
        const username = $('#username');
        const password = $('#password');
        const userlogin = $('#Username login');
        const passlogin = $('#Password login');
        save.click(function(e){
            e.preventDefault();
            $.post('/signup',{
                email:email.val(),
                username:username.val(),
                password:password.val()
            }, function(data){
                console.log(1)
                if(data.username){
                localStorage.setItem("username",data.username)
                }
                window.location.href(data.url)
            })
        })
        submit.click(function(e){
            e.preventDefault();
            $.post('/login',{
                username:userlogin.val(),
                password:passlogin.val()
            }, function(data){
                window.location.href(data.url)
            })
        })
    })
    

    这就是路线。后端存在js文件

    app.post('/signup', function(req,res){
        var a = [req.body.email,req.body.username,req.body.password];
        Users.findOne({
           where: { email: a[0],
            username: a[1],
            password: a[2],
           }
    
        }).then(users => {
            if (users) {
            res.send({
                url:'/'
            })
            }
            else{
                Users.create({
                    email: a[0],
                    username: a[1],
                    password: a[2],
    
              }).then(users => {
                    res.send({
                        url:'/profile',
                        username: a[1]
                    })
              })    
            }
        })
    })
    

    在收到来自服务器的成功回调后,我需要重定向到/profile。但目前页面未加载,但用户名字段已成功存储在localstorage中。 我相信这是因为窗户。地方href

    2 回复  |  直到 6 年前
        1
  •  2
  •   Partha Roy    6 年前

    你可以用多种方式来做。

    首先让我告诉你代码中的错误,

    你必须使用,

    window.location.href = "https://www.example.com";
    

    因为你写的符号是错误的

    window.location.href(data.url) // this is wrong
    

    Window.location docs at MDN

    现在来看另一种方式,

    您可以在标记中以及在“操作”属性中指定post方法。

    <form name="some_name" method="POST" action="/signup">
    ... Your Form ...
    </form>
    
        2
  •  2
  •   CertainPerformance    6 年前

    这个 .href 有一个 所有物 属于 window.location 可以获取/设置,而不是函数本身(从脚本编写者的角度来看)。请尝试以下操作:

    window.location.href = data.url;