Z jakiegoś powodu nie mogę przekierować do/blogu po zakończeniu logowania. W moim kontrolerze logowania mam następujące.res.redirect z POST
module.exports = {
post: function(req, res) {
var login = req.body['login'];
if (login && req.body['login']['password'] == "password") {
console.log('Granted access');
res.send({redirect: '/blog'});
}
else {
console.log('wrong password');
res.redirect('back');
}
}
};
ajax jquery
$(document).ready ->
$('#login-button').click() ->
$.ajax
url: '/login'
type: 'POST'
data: $('#Password').serialize()
dataType: 'json'
success: (data, textStatus, jqXHR) ->
if typeof data.redirect == 'string'
window.location = data.redirect
zaktualizowana kod
Czy możesz nam powiedzieć dokładnie to, co robi? Jaki kod odpowiedzi otrzymasz? Po pierwsze, musisz skonfigurować swoje oprogramowanie pośrednie ('app.use (express.bodyParser())') podczas początkowego ładowania aplikacji, a nie podczas każdego procesu żądania. –
Zaktualizowałem. Nie otrzymuję żadnej odpowiedzi i mam app.use (express.bodyParser()) w moim app load wewnątrz server.js – lostAstronaut
Generujesz kod odpowiedzi 200, więc musisz uzyskać odpowiedź, być może z puste ciało. Czy na pewno wywoływana jest funkcja 'post' kontrolera logowania? Czy widzisz dane wyjściowe z tych instrukcji 'console.log'? Biorąc pod uwagę twoje if/else, w każdym przypadku wywołujesz 'res.redirect', więc powinieneś otrzymać kod odpowiedzi 301. To prowadzi mnie do przekonania, że to zupełnie inna obsługa trasy, która odpowiada na żądanie. –