繁体   English   中英

jQuery Ajax调用后无法重定向

[英]Unable to redirect after jQuery Ajax call

从服务器获得成功响应后,我想实现重定向。 我尝试按照此处描述的相同方式进行操作,但不幸的是无法实现所需的行为。

将数据发送到服务器并应该执行重定向的功能如下:

 $("#btn-login").click(function(){
                if ($('#loginform').valid() == false) {
                    return false;
                }
                var formData = $("form#loginform").serialize();
                $.ajax({
                    type: "POST",
                    url: "/authentication/login",
                    data: formData,
                    success: function(data, textStatus){
                        console.log(formData);
                        //console.log(data);
                        if(data.redirect){
                            window.location.href = data.redirect;
                        }
                    },
                    error: function(e){
                        alert(e.responseText);
                    }
                });
            });

在服务器端,执行跟踪功能:

/* Handle Login POST */
router.post('/login', passport.authenticate('login', {
    successRedirect: '/',
    failureRedirect: '/authentication',
    failureFlash : true
}));

有谁知道为什么客户端的功能在收到服务器的响应后不重定向?

谢谢!

console.log(data)的输出是什么?

似乎服务器正在重定向,因此当前端代码接收到服务器的输出时,它已经是successRedirect或failureRedirect页面,因此未到达您的代码window.location.href = data.redirect 检查data ,它应该具有redirect属性。 如果没有,我的猜测是服务器已经在进行重定向,并且您没有看到它,因为您是通过ajax调用它的。 可以在Web检查器的“网络”选项卡中确认。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM