在查看不同表单的一些源代码时,我遇到了这段代码
<input class="" id="Delivery_HasShippingAddress" name="Delivery.HasShippingAddress" tabindex="11" type="checkbox" value="true" />
<input name="Delivery.HasShippingAddress" type="hidden" value="false" />
属于相同的形式。正如您所看到的,虽然不同的类型和ID,但有两个input
标签具有相同的名称。如果表单已提交tamper data,则将它们“同时”列为POSTDATA:
Delivery.HasShippingAddress=true
Delivery.HasShippingAddress=false
我现在想知道如何处理此请求?
服务器是否用第二个值覆盖第一个值,或者收到的第一个值是否占主导地位,或者列出的值都是可能的(虽然会很奇怪)?
答案 0 :(得分:1)
浏览器会将数据编码为字符串。典型地:
Delivery.HasShippingAddress=true&Delivery.HasShippingAddress=false
服务器上发生的情况取决于您的表单处理库。通常它会解码according to this spec。然后它会将数据呈现给程序员。
有些会呈现一系列值。有些人只会提出其中一个值。有些可能会根据您调用的函数执行。