通过查询字符串传参数
虽然一般我们发送一个 GET 请求,就直接请求网站链接就可以了,例如访问 http://haoqicat.com
或者 http://haoqicat.com/http-with-peter
。但是有的时候,我们也希望 GET 请求能够携带一些更为详细的数据 到服务器端,以便服务器更为精确的为我们提供相应内容。
GET 请求中携带一些数据到服务器端的方法并不唯一,但是一种非常简单也非常常用的方式就是,使用查询字符串 来 传递数据,或者叫传递参数。
具体格式
如果打开 chrome 浏览器,打开 chrome 开发者工具的 Network 标签。然后浏览器中访问
http://haoqicat.com/?name=fightingljm
上面的 ?name=fightingljm
就是所谓的查询字符串,这里面传递了一个参数,也就是 name
,参数值是 fightingljm
。
此时,Network 标签下会看到,页面发出了多个请求,点第一个,也就是
?name=fightingljm
这个请求,在 chrome 开发者工具的右下角,可以看到:
Query String Parameters
name: fightingljm
意思就是:
查询字符串参数
name: fightingljm
这些数据会作为请求的一部分,发送给服务器的。服务器端的框架,例如 express 有自己的办法去得到这些参数值, 至于服务器端代码如何使用这些参数,那就是自由的了。
传递多个参数
也可以传递多组参数的,每组之间以 &
隔开
http://haoqicat.com/?name=fightingljm&email=ljm@peter.com
Chrome 开发者工具右下角,此时就会看到两个参数了。
甚至可以写成这样
?order=desc&shoe[color]=blue&shoe[type]=converse
服务器端如果是 express ,就可以很方便的用 req.query
来 难道传递过来的参数。
如果我想添加一个备用邮箱,可以使用 +
来进行连接
?name=peter&email=fightingljm@gmail.com+b@b.com
注意现在 Chrome 右下角的参数,email
这一项就是两个值了。
For example
http://stackoverflow.com/search?q=http
这样,可以打开的页面是 stackoverflow 搜索 http
这个关键词之后的搜索结构页面。