将请求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) {
...
});