2

我一直在阅读有关get提交表单数据的方法。

因此,表单中的数据将作为分隔符附加到表单的action属性值中。?

我不明白的是,我如何正确预测表单提交的 URL 将是什么。

我的意思是,假设一个表单如下所示:

<form method="get" action="foobar.com/search">
  User Name : <input type="text" name="uname"></input><br/>
  Name : <input type="text" name="name"></input><br/>
  <input type="submit" value="Submit"></input>
</form>

单击提交按钮时,生成的 URL 是什么?这将是 :foobar.com/search?[data encoded here]

但是什么协议定义了它的编码方式?该名称可能出现在用户名之前或之后。

是否可以编写一个脚本来为任何表单创建一个模板 URL,以便在%s用字符串数据替换相应的 URL 时,它会创建正确的 URL?

谢谢你。

4

2 回答 2

3

给定一个application/x-www-form-urlencoded编码(默认)和 GET 的使用,简单来说,这个过程是:

对于每个控件,按照它们在表单中出现的顺序,如果它是一个成功的控件:

  1. 如果不是第一项,请添加&
  2. URL 编码字段的名称
  3. 添加一个=
  4. URL 编码字段的值

HTML 5 规范中描述了构建表单数据提交的完整过程(具体在The application/x-www-form-urlencoded encoding algorithm 中)。

是否可以编写一个脚本来为任何表单创建一个模板 URL,以便在用字符串数据替换相应的 %s 时,它会创建正确的 URL?

由于在提交表单之前并不总是可以预测哪些控件会成功,所以不。

于 2013-04-06T13:38:25.577 回答
0

参数的顺序完全没有区别,因为它是一个关联数组。

也就是说,我相当确定所有浏览器都会按照它们在源代码中出现的顺序发送变量。所以在你的情况下?uname=[input]&name=[input]

于 2013-04-06T13:30:37.673 回答