Перенаправить на другой URL-адрес страницы в Node.js (не в экспресс или других рамках)

Я хочу перенаправить пользователя с одной страницы на другую в Node.js (обычный node.js)

Реальный сценарий: после регистрации (example.com/sigup), после успешной регистрации я хочу перенаправить пользователей на страницу входа (example.com/login).

if (signUpSuccessful(request, response)) {    
    // I want to redirect to "/login" using request / response parameters.
}

3 ответа

Решение

Это просто:

if (signUpSuccessful(request, response)) {
    response.statusCode = 302; 
    response.setHeader("Location", "/login");
    response.end();
}

Это перенаправит вашего пользователя на /login URL с 302 Found статус и закончить ответ. Будьте уверены, что вы не звонили response.write() раньше, в противном случае будет выдано исключение.

Самый простой способ сделать это - использовать код состояния 302 и поле местоположения с целевым URL.

Код состояния ответа HTTP 302 Найдено - это распространенный способ выполнения перенаправления.

HTTP-ответ с этим кодом состояния дополнительно предоставит URL в поле заголовка Location. Пользовательский агент (например, веб-браузер) приглашается в ответ с этим кодом сделать второй, идентичный в противном случае, запрос к новому URL-адресу, указанному в поле "Местоположение". Спецификация HTTP/1.0 (RFC 1945) определяет этот код и дает ему фразу описания "Временно перемещено".

Источник: Википедия

res.statusCode = 302;
res.setHeader("Location", '/login');
res.end();

Более простой способ:

res.redirect(307, '/login');

Найти более подробную информацию в ответе на этот пост

Другие вопросы по тегам