点击提交按钮时会发生什么?

26

当提交按钮被点击时会发生什么?假设我有一个表单,它位于 http://example.com/ URL 上,并且有两个像这样的 input 元素:

<form method="get">
    <input type="text" id="field1" name="namefield1"/>
    <input type="text" id="field2" name="namefield2"/>
    <input type="submit" value="submit"/>
</form>

在我的特定情况下,实际发送给http服务器的是什么样的get请求?


1
下载Fiddler,查看发送了哪些请求。 - Davin Tryon
为什么不使用浏览器的调试工具尝试一下呢? - j08691
2个回答

27
表单将被提交到服务器,浏览器将重定向到当前浏览器地址并附加作为查询字符串参数的输入字段的值。
就HTTP协议而言,将发送以下GET请求HTTP请求:
GET http://example.com/?namefield1=value1&namefield2=value2 HTTP/1.1
Host: example.com
由于您的 <form> 缺少一个 action 属性,浏览器将通过在查询字符串参数中添加这些值来重定向到当前网址。所以如果这个表单是从 http://example.com/foo.php 加载的,提交后,浏览器将重定向到 http://example.com/foo.php?namefield1=value1&namefield2=value2 ,其中 value1value2 将是用户在相应输入字段中输入的值。
此外,您可以使用浏览器内置的调试工具或Fiddler来检查发送到服务器的确切负载。

为什么 namefield1 被发送了两次? - j08691
这是一个错误。将会向服务器发送2个参数。 - Darin Dimitrov

4

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接