Pour une raison quelconque, je ne peux pas rediriger vers/blog une fois ma connexion terminée. Dans mon contrôleur de connexion, j'ai les éléments suivants.
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');
}
}
};
Le jquery ajax
$(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
mis à jour en code de travail
Vous ne pouvez pas faire de redirection après un AJAX. Vous devez le faire vous-même en Javascript.
serveur
post: function(req, res) {
var login = req.body['login'];
app.use(express.bodyParser());
if (login && req.body['login']['password'] == "tom") {
var loginPassword = req.body['login']['password'];
console.log(loginPassword);
console.log('Granted access');
res.send({redirect: '/blog'});
}
...
}
client
$(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
Cela devrait fonctionner.
Les POST sont redirigés vers les GET. Vous ne pouvez pas rediriger vers un POST vers un POST; vous pouvez le transférer, mais ce serait bizarre. Je recommande d'ajouter de la logique à votre itinéraire GET qui gérera un utilisateur connecté ou non connecté) .
De plus, 304 signifie probablement que votre réponse est mise en cache par votre navigateur parce que vous avez utilisé un 301 (redirection permanente, très mauvaise à la connexion, etc.; utilisez 302).