URL-адрес, отображаемый в браузере, является URL-адресом HTTP-запроса , который приводит к ответу, который он отображает. Таким образом, если у вас есть страница по URL /appname/
, которая отправляет форму по URL /appname/submit/
, то полученный ответ (при условии, что это HTTP 200 OK) будет отображаться браузером с URL /appname/submit/
, а ничего нет Вы можете сделать на заднем плане , чтобы повлиять на это. Так что вы хотите невозможно . Конечно, вы всегда можете перенаправить (HTTP 302 Redirect) на другой URL, но это, вероятно, не то, что вы ищете.
Вы не даете конкретного примера того, чего пытаетесь достичь, но упомянутая форма входа, похоже, указывает на то, что вы отправляете форму по другому URL-адресу, чем исходный URL-адрес, использованный для извлечения формы. Не делай этого . Используйте один URL (и одно представление) для визуализации и обработки формы:
- С помощью запроса GET вы возвращаете страницу с пустой (или исходной) несвязанной формой (HTTP) 200).
- При запросе POST и неверных данных вы возвращаете ту же страницу с заполненной формой bound и ошибками (HTTP 200).
- с запросом POST и действительные данные, вы обрабатываете данные и перенаправляете на другую страницу, показывающую успех (HTTP 302).
Посмотрите на , работающую с документами форм , чтобы увидеть пример. Вот как вы должны это делать для каждой формы.
Обратите внимание, что в настоящее время на многих веб-сайтах формы отправляются через ajax (XHR). Это позволяет вам отправлять форму в фоновом режиме, не обновляя страницу. javascript может отправить его по любому URL (в том же домене), поскольку это не повлияет на URL, который видит пользователь, а javascript заботится об обновлении различных элементов на странице в зависимости от ответа. Он также позволяет размещать одну и ту же форму на нескольких разных страницах (например, всплывающая форма входа в систему в верхней панели навигации вашего сайта, которая отображается на каждой странице вашего сайта).