数据由Client发送给Server,如下图所示,Server在收到请求后会响应Client。
比如Client发送给Server一组数据:Name:sean&Hobby:movies&City:Peking&Country:China
有如下表单:
可以看到"China"是默认置灰的属性的值,不允许手动输入,所以用户只需要填写"Name"、"Hobby"、"City"这三项,然后点击最下面的"保存"按钮。
那么BUG就出来了,当Client把这组数据(Name:sean&Hobby:movies&City:Peking&Country:China)发送给Server,这个时候Server返回给Client的不是HTTP200OK,而是HTTP500。
为什么呢?
因为服务器接收到的数据是Name:sean&Hobby:movies&City:Peking&Country:' ',也就是说默认置灰的属性的值(写死的缺省值China)没有发送给Server。于是Server认为接收到的数据不完整,所以告诉Client出现错误了。
总之,当遇到表单内有缺省值的场景,需要稍微留意一下。
在产品迭代的过程中,可能版本1.0不涉及默认置灰的属性(理解为:Name、Hobby、City、Country的值都支持手动输入),然而版本2.0却置灰了某1个属性的值(产品设计总在变嘛,为了交互,为了易用等等等等),这个时候就有可能出现了本文内提到的这个BUG。