当我尝试以下结构时,它不会发送 id=value
<form action="some.php?id=value" method="get">
<input name="name1" value="value1">
<input type="submit">
</form>
Run Code Online (Sandbox Code Playgroud)
我知道我可以发送id=value隐藏的字段,但它很有趣,为什么它不允许这样的结构?
这是因为表单的"method = get"部分意味着查询值必须来自表单值.
包含"id = value"的集合将被包含表单值的集合覆盖.
这种行为似乎内置于每个浏览器中,因此我希望它是HTML规范的一部分.
更新
啊啊:
之前已经提到过: 提交带有查询字符串参数的GET表单,隐藏的参数消失
报价:
正如规范(RFC1866,第46页; HTML 4.x第17.13.3节)所述:
如果方法是"get"并且操作是HTTP URI,则用户代理获取action的值,附加"?" 然后,添加使用"application/x-www-form-urlencoded"内容类型编码的表单数据集.