#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. Ах, в этом есть большой смысл. Спасибо