javascript - 为什么在 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 的后面。如何删除它?
解决方案
当您document.getElementById("jsForm").submit();
将 URL 上的表单作为查询参数发送时,因为您正在使用method="GET"
a=a
此字段的<input type="hidden" name="a" value="a">
is 在 HTML 中隐藏,但仍将在 URL 上发送
如果你想“隐藏”你可以使用method="POST"
的将不会在 URL 上可见
推荐阅读
- javascript - 仅使用 js 在移动设备上获取最精确位置的最佳方法
- mysql - 如何查找一整周从晚上 8 点到早上 6 点的数据
- javascript - HERE maps 使用 Bounds 获取基点
- github-actions - 编辑 GitHub 操作日志中未存储在官方操作机密中的文本的机密
- javascript - 是否可以以 GLTF 格式从场景中导出动画和变形?
- unity3d - 当我在统一上将平台切换到 android 时,Skybox 无法正确渲染?
- php - 我有一个 MySQL 查询在 Laravel 中完美运行,但是当我将我们的数据库切换到 PostgreSQL 时,它停止工作并给出错误
- python - 测试用例验证帮助程序中的错误处理程序
- python - selenium - 如何通过预期文本后面/之后的内容来剪切字符串 - 例如图片中给出的
- node.js - 在vercel部署中下一个js prisma未定义