php - 为什么我必须使用 POST 而不是 GET?

标签 php html post get

当我使用 <form action="code.php?id=1" method="post"></form> 时,表单 ID 在 URL 中传递。但是,当我通过将“POST”替换为“GET”来编写相同的代码时,id 不会传递给 URL。

为什么?

最佳答案

当您提交 GET 表单时,表单中的值将附加到 action URL,作为 ? 之后的“查询字符串”。在此类表单的 action 属性中指定现有查询字符串会产生歧义。浏览器不会合并这两个查询字符串,它们只是丢弃旧的查询字符串并根据表单构建新的查询字符串。

使用 POST 表单,没有歧义:来自表单的数据与 URL 分开发送,因此不需要覆盖查询字符串。

但是,最好不要混合使用这两种参数,因此解决方案总是将您的额外参数作为隐藏字段包含在内,这样它就可以同时用于 GET 和 POST 形式:

<input type="hidden" name="id" value="1">

关于php - 为什么我必须使用 POST 而不是 GET?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19063707/

相关文章:

php - Preg_match 用于所有特殊字符,密码检查

ios - 尝试使用 Alamofire 4 和 OAuth2 发出 POST 请求时出错 - Swift

java - Android html POST 不工作,没有给出错误

html - fb like 按钮在所有 ie 版本的页面加载上创建白色背景

html - 在调整浏览器窗口大小时不进行文本换行的 div 宽度调整

javascript - 使用 JavaScript 确保发布请求的顺序

php - 具有相同字段名称的 Doctrine 查询生成器

javascript - eclipse 2020-06 语法突出显示不适用于 php 或 html 文件中的内联 javascript

javascript - 如何在 Angular 4 中使用 *ngFor 实现自定义过滤器管道?

javascript - 滚动功能无法正确触发动画