У меня есть целевая страница ('/'). На этой странице есть форма входа для имени пользователя и пароля с кнопкой отправки. У меня есть app.get, который загружает страницу и app.post для получения параметров формы. Однако я намерен иметь app.post ('/ login', function (req, res) {// logic}); Для загрузки нет/логина или страницы для загрузки, это просто будет содержать логику для входа в систему (проверка имени пользователя и т. Д.). Есть ли простой способ получить сообщение от '/' для перенаправления в сообщение для/логин без его попытки загрузить страницу/login, которой не существует?Перенаправить POST на POST с использованием Express JS маршрутов
ответ
Я не уверен, правильно ли я понял ваш вопрос. Насколько я понимаю, вы хотите, чтобы ваш запрос POST /
перенаправлялся на запросы POST до /login
, что может быть сложно.
Обычно вы делаете переадресацию, отправляя либо 301 Перемещенный на постоянной основе, либо 302 Найдено код состояния HTTP. Оба они обычно работают на практике, как если бы это было 303 См. «Прочее», и был сделан запрос GET. См. List of HTTP status codes в Википедии:
Это пример отраслевой практики, противоречащей стандарту. Спецификация HTTP/1.0 (RFC 1945) требовала, чтобы клиент выполнял временную переадресацию (исходная фраза описана «Перемещена Временно»), но популярные браузеры реализованы 302 с функциональностью 303 См. Другое. Поэтому HTTP/1.1 добавил статус кодов 303 и 307, чтобы различать два поведения. Однако, некоторые веб-приложения и среды используют код 302 состояния , как если бы это было 303.
Существует 307 Temporary Redirect (с HTTP/1.1), созданный для решения этого вопроса, который не имеет права на изменение метод HTTP - поэтому перенаправление с POST должно быть POST - см. Википедия:
В этом случае запрос должен быть повторен с другим URI; Однако в будущих запросах все равно должен использоваться оригинальный URI. В отличие от того, как было реализовано 302, метод запроса не может быть изменен при повторной выдаче первоначального запроса. Например, для примера запрос POST должен быть повторен с использованием другого запроса POST .
Насколько я знаю, браузеры должны предупреждать пользователей перед тем, как следовать таким переадресациям. Я не знаю, как это работает на практике. Я бы не стал полагаться на это, поскольку это может раздражать пользователей в лучшем случае или даже вообще не работать.
Мое предложение было бы либо изменить:
app.post('/login', function (req, res) {
// logic
});
к этому:
function loginHandler(req, res) {
// logic
}
app.post('/login', loginHandler);
app.post('/', loginHandler);
или что-то вроде этого, используя регулярные выражения:
app.post(/^\/(?:login)?$/, function (req, res) {
// logic
});
Таким образом, вместо того, чтобы перенаправление того же обработчика будет использоваться для обоих этих маршрутов. Это было бы быстрее и надежнее, потому что таким образом вы не полагаетесь на перенаправление, работающую так, как вы хотите - перенаправления вообще нет.
- 1. Метод для сохранения формы post Express JS
- 2. Нет совпадений маршрутов [POST] "/"
- 3. JSHTML post express node.js
- 4. Node.js express POST 404ing
- 5. Node.js & Express: необходимо перенаправить на определенные страницы на основе значений POST (с использованием MongoDB)
- 6. Express App Post Request
- 7. Использование маршрутов в Express-js
- 8. Nodejs/Express Redirect после POST
- 9. Перенаправить данные POST
- 10. .js файл с использованием jQuery .post - сверхбезопасный?
- 11. как перенаправить на страницу с использованием запроса ajax post
- 12. swagger POST node.js express
- 13. Node.js с экспресс: как перенаправить запрос POST
- 14. Запрос POST, пытающийся перенаправить
- 15. Как перенаправить example.com/blog/month/post на example.com/post
- 16. Модульное тестирование MVC маршрутов, POST
- 17. Нет совпадений маршрутов [POST] "/ users"
- 18. Нет совпадений маршрутов POST для '/'
- 19. Извлечь POST с formData пуст в Express JS route
- 20. Как сделать работу POST с помощью router.post в Express JS
- 21. POST данные на клиент-экспресс в JS
- 22. рельсы Нет совпадений маршрутов [POST]
- 23. Переадресация Ajax с использованием POST
- 24. Как перенаправить метод «POST» с помощью Javascript?
- 25. Данные POST с использованием AJAX POST
- 26. Перенаправить POST-запрос в apache
- 27. Nodejs, Express + Angular POST 404
- 28. Node.js/express post не работает
- 29. Node.js и Express; POST 404
- 30. Как перенаправить на POST весной MVC
Было бы хорошо, если бы кто-нибудь сообщил мне, было ли нарушение политики или если мой вопрос был неприемлемым по какой-либо причине, а не просто просто его голосование. –
Был ли мой ответ ниже для вас? Если это так, вы можете рассмотреть [принятие ответа] (http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work/5235#5235), чтобы другие люди искали эту проблему увидит, что ваш вопрос имеет принятый ответ. – rsp