将请求Web服务器发布到nodejs后端:



     $('#login').click(function() {
        $.post(
            '/login',
            {
                mail: encodeURIComponent($('#mail').val()),
                password: encodeURIComponent($('#password').val())
            },
            function(result) {
                console.log(result);
            });
    });



问题
后端成功获得了发布请求,但是由于我在chrome控制台中出现了以下错误,因此无法重定向到新页面:


  POST http://localhost:1000/login网络:: ERR_UNSAFE_REDIRECT


我知道这不是受保护的SSL连接。但是有办法解决吗?还是我做了一些错误的设置?


我在后端的代码:



app.post('/login', function(req, res) {
   console.log(req.body);
   res.redirect(__dirname+'/wwwroot/views/profile/dashboard.html');
});

最佳答案

您正在发送对ajax请求的重定向响应,为什么不让javascript通过使用window.location.href为您执行重定向:

服务器:

app.post('/login', function(req, res) {
    console.log(req.body);
    res.json({ success: true });
});


客户:

$('#login').click(function() {
    $.post(
        '/login',
        {
            mail: encodeURIComponent($('#mail').val()),
            password: encodeURIComponent($('#password').val())
        },
        function(result) {
            if (result.success) {
                window.location.href = '/dashboard'
            }
        });
});


请注意,如果希望上面的示例起作用,则应定义/dashboard路由:

app.get('/dashboard', function(req, res) {
    ...
});

10-06 14:16