重新认识GET吧!

来源:互联网 发布:linux udp端口禁用 编辑:程序博客网 时间:2024/06/06 14:09

GET 是最常见的请求类型,最常用于向服务器查询某些信息。必要时,可以将查询字符串参数追加到 URL 的末尾,以便将信息发送给服务器。对 XHR 而言,位于传open() 方法的 URL 末尾的查询字符串必须经过正确的编码才行。


使用 GET 请求经常会发生的一个错误,就是查询字符串的格式有问题。查询字符串中每个参数的名称和值都必须使用 encodeURIComponent() 进行编码(关于编码在《URI编码方法》文章中已经说明),然后才能放到 URL 的末尾;而且所有名-值对儿都必须由和号(&)分隔,如下面的例子所示。


xhr.open(“get”, “example.php?name1=value1&name2=value2”, true);


下面这个函数可以辅助向现有URL的末尾添加查询字符串参数:


function addURLParam(url, name, value) {

url += (url.indexOf(“?”) == -1 ? ”?” : ”&”);

url += encodeURIComponent(name)+”=”+encodeURIComponent(value);

return url;

}


这个 addURLParam() 函数接受三个参数:要添加参数的 URL、参数的名称和参数的值。这个函数首先检查 URL 是否包含问号(以确定是否已经有参数存在)。如果没有,就添加一个问号;否则,就添加一个和号。然后,将参数名称和值进行编码,再添加到 URL 的末尾。最后返回添加参数之后的 URL。


下面是使用这个函数来构建请求 URL 的示例。


var url = “example.php”;

//添加参数

url = addURLParam(url, “name”, “Nicholas”);

url = addURLParam(url, “book”, “Professional JavaScript”);

//初始化请求

xhr.open(“get”, url, false);


在这里使用 addURLParam() 函数可以确保查询字符串的格式良好,并可靠地用于XHR对象。


好了,今天的文章就到这里,本文由Web前端精髓为您提供,喜欢的同学记得点击收藏或者点赞哦!