首页 > 解决方案 > 为什么在 GET 上我的 URL 后面会添加“?a=a”?

问题描述

我使用 post 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 的后面。如何删除它?

标签: javascriptnode.jsformsurlget

解决方案


当您document.getElementById("jsForm").submit();将 URL 上的表单作为查询参数发送时,因为您正在使用method="GET"

a=a此字段的<input type="hidden" name="a" value="a">is 在 HTML 中隐藏,但仍将在 URL 上发送

如果你想“隐藏”你可以使用method="POST"的将不会在 URL 上可见


推荐阅读