空表单 POST 数据

Posted

技术标签:

【中文标题】空表单 POST 数据【英文标题】:Empty form POST data 【发布时间】:2012-09-08 08:26:21 【问题描述】:

如果您通过 POST 发送 html 表单但不输入数据,谁能告诉我会发生什么?

例如:通过POST 发送到另一个页面(例如 servlet 或 php)的输入字段“名称”。如果不输入值,接收页面会得到什么?是元素没有发送(null)还是你得到的是空字符串?

【问题讨论】:

【参考方案1】:

空值是您将收到的。用你的话说(“”),考虑到没有验证并且提交了表单。

出于好奇,您是否在服务器端对空值进行验证?我建议您在提交表单之前先检查客户端上的空值。这样您的 UI 将是无缝的,并且您将节省带宽。

这是使用非空值的 POST 请求的样子:

POST /submitpage.php HTTP/1.1
Host: www.awebsite.com
User-Agent: Safari/4.0
Content-Length: 39
Content-Type: application/x-www-form-urlencoded  

name=Ashwin+Singh&age=21&job=Developer

如果传递了空值,它将如下所示:

POST /submitpage.php HTTP/1.1
Host: www.awebsite.com
User-Agent: Safari/4.0
Content-Length: 16
Content-Type: application/x-www-form-urlencoded

name=&age=&job=

【讨论】:

感谢您的帮助。是的,我实际上是在用 javascript 测试空值,但在我的表单中,一些字段是可选的【参考方案2】:

文本输入字段将被发送为空,但对于单选按钮和复选框,只有选定的项目将被传输到服务器。

【讨论】:

以上是关于空表单 POST 数据的主要内容,如果未能解决你的问题,请参考以下文章

Django Ajax ModelForm 向 request.POST 提交一个空表单

django中处理表单的经典流程

PHP 从 Ajax 调用接收空的 $_POST 变量

接收空表单的烧瓶

PHP表单找不到空字段

我正在使用 mandrill 和 Node.js 创建一个邮件客户端...我的节点服务器在提交邮件客户端表单时收到一个空的 POST 请求正文