【问题标题】:What happens when submit button is clicked单击提交按钮时会发生什么
【发布时间】:2014-02-16 16:52:05
【问题描述】:

点击提交按钮时会发生什么?让我有一个位于 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-server?

【问题讨论】:

  • 下载Fiddler并查看发送了哪些请求。
  • 何不试试看用浏览器的调试工具看看?

标签: html get


【解决方案1】:

表单将被提交到服务器,浏览器将重定向到浏览器的当前地址,并将输入字段的值作为查询字符串参数附加。

根据 HTTP 协议,将发送以下 GET 请求 HTTP 请求:

GET http://example.com/?namefield1=value1&namefield2=value2 HTTP/1.1
Host: example.com

由于您的&lt;form&gt; 缺少action 属性,浏览器将通过附加值作为查询字符串参数简单地重定向到当前网址。因此,如果这个表单是在提交后从http://example.com/foo.php 加载的,浏览器将重定向到http://example.com/foo.php?namefield1=value1&amp;namefield2=value2,其中value1value2 将是用户在相应输入字段中输入的值。

您也可以使用浏览器的内置调试工具或Fiddler 来检查发送到服务器的确切负载。

【讨论】:

  • 为什么namefield1被发送了两次?
  • 这是一个错误。 2个参数将被发送到服务器。
【解决方案2】:

如果您使用“get”方法提交表单,那么它将执行获取请求,从而将查询字符串中输入元素中保存的数据作为名称值对发送。比如http://example.com/index.html?field1=joe&field2=bloggs

如果您向下滚动到底部的提交按钮示例,请参见此处的示例:http://www.w3schools.com/html/html_forms.asp

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-12-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-11
    • 1970-01-01
    • 2019-01-01
    相关资源
    最近更新 更多