Почему «?a=a» добавляется в конец моего URL-адреса в GET?

#javascript #node.js #forms #url #get

Вопрос:

Я использую запрос action="/sact/${searchp}/" на получение сообщения для отправки поискового запроса пользователя.

 var searchp = search.querySelector("input.search-input").value;
// returns the normal value

document.body.innerHTML  = `<form id="jsForm" action="/sact/${search}/" method="GET"><input type="hidden" name="a" value="a"></form>`;
document.getElementById("jsForm").submit();
 

Это перенаправляет сюда:

 router.get('/sact/:where', async (req, res, next) => {
  res.render('search');
});
 

Я не могу понять, почему /?a=a добавляется в конец URL-адреса каждый раз, когда он отправляется. Как мне его удалить?

Комментарии:

1. используйте этот POST GET метод, а не этот, если вы не хотите, чтобы какие-либо строки запроса содержались в вашем URL-адресе после отправки формы

Ответ №1:

Когда вы document.getElementById("jsForm").submit(); отправите форму по URL-адресу в качестве параметров запроса, потому что вы используете method="GET"

Значение a=a из этого поля <input type="hidden" name="a" value="a"> скрыто в HTML, но все равно будет отправлено по URL

если вы хотите «скрыть», вы можете использовать method="POST" , не будет отображаться на URL-адресе

Комментарии:

1. Ах, в этом есть большой смысл. Спасибо