Почему в форме "Отправить" вставлено "?" в конце URL? Как это предотвратить? - PullRequest
0 голосов
/ 17 июня 2020

Почему в форме "Отправить" вставлено "?" в конце URL? И как это предотвратить?

Вот так:

<form action="http://www.the-sample-website.com" target="_blank">
  <button type="submit">Button Submit</button>
</form>

Отправить на: http://www.the-sample-website.com/?

Запуск образца: https://www.w3schools.com/code/tryit.asp?filename=GFUVYSHBKS7K

1 Ответ

0 голосов
/ 17 июня 2020

Это потому, что вы не указываете method своей формы, поэтому вы испытываете метод GET.

По умолчанию method для элемента <form> - GET , который представляет собой одну или несколько переменных, которые анализируются в URL.

Вот почему вы иногда видите такие примеры в URL:

www.example-site.com?id=1

Или

www.example-site.com?id=1&name=bob

В этом примере переменными GET являются id и name. В зависимости от языка на стороне сервера вы можете получить эти переменные.

Пример использования PHP:

<?php
$myVar = $_GET['id'];
// $myVar2 = $_GET['name'];
?>

Это будет хранить переменную GET, проанализированную в URL примере I дал ранее.

Чтобы форма не использовала GET method, определите method как POST в теге <form>.

Пример:

<form action="http://www.the-sample-website.com" method="post">
    <!-- Your form stuff -->
</form>

РЕДАКТИРОВАТЬ:

Красиво @Martin. Но должен ли я установить метод "post", даже если я хочу перенаправить без данных формы?

@ Victor Soares

Ответ: Если все, что вы хотите сделать, это перенаправить без отправки каких-либо данных, тогда вам вообще не нужен <form>. Вы можете просто использовать тег <a> или, если вы хотите сохранить свою кнопку logi c, создайте функцию JavaScript, которая выполняет перенаправление за вас.

Пример:

function redirector(){
  alert('this function redirects to Google');
	var url = "https://www.google.com/"
	window.location.href = url;
}

const redirectButton = document.querySelector('#redirectButton');

redirectButton.addEventListener("click", function() {
	redirector();
});
<button id="redirectButton">I take you to Google!</button>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...