Я боролся в течение 2 дней на этом, googled и stackoverflowed все, что мог, но я не могу это решить.ExpressJS: res.redirect() работает не так, как ожидалось?
Я создаю приложение простого узла (+ Express + Mongoose) со страницей входа, которая перенаправляется на главную страницу. Вот мой сервер кофе код:
app
.get '/', (req, res) ->
console.log "Here we are : root"
res.sendfile(__dirname + '/index.html')
.get '/login', (req, res) ->
console.log "Here we are : '/login'"
res.sendfile(__dirname + '/login.html')
.post '/credentials', (req, res) ->
console.log "Here we are : '/credentials'"
# (here comes credentials validation stuff with Mongoose)
res.redirect '/'
страница Логин делает запрос POST к/учетным данным, где проверенные размещен данные. Это работает. Я вижу «Вот мы:«/credentials »в консоли узла.
Затем возникает проблема: res.redirect работает неправильно. Я знаю, что он достигнет «/» маршрут, потому что:
- Я могу видеть «Вот мы: корень» в консоли узла
- страница index.html отправляемой обратно в браузер как ответ, но не отображается в окне. Инспектор Chrome показывает ответ на запрос POST, я могу видеть, что HTML-код отправляется в браузер в инспекторе, но URL остается/логин, и страница входа в систему по-прежнему отображается на экране.
(Изменить) Перенаправление в функции обратного вызова Mongoose, это не синхронно (как должно быть NodeJS). Я просто удалил материал для проверки мандата Mongoose для ясности.
Я попытался добавить res.end()
, не работает
Я попытался
req.method = 'get';
res.redirect('/');
и
res.writeHead(302, {location: '/'});
res.end();
Не работает
Что я делаю неправильно? Как я могу фактически покинуть страницу «/ login», перенаправить браузер на «/» и отобразить полученный код HTML?
Спасибо миллион за вашу помощь заранее :)
Вы действительно вызываете страницу учетных данных в своем браузере или делаете запрос AJAX? – mvuajua
Вы когда-нибудь выясняли, что здесь происходит? У меня такая же проблема, проверка подлинности учетных данных не работает для маршрута, указанного как GET, в моем случае профиля пользователя. – OliverJ90
Нет, никогда не понял. Я закончил тем, что создал свое приложение по-другому, с частью входа в модальную, а не с другой страницы ... Очень расстраиваю –