牛骨文教育服务平台(让学习变的简单)
博文笔记

Ajax三部曲(二)GET与POST

创建时间:2017-11-08 投稿人: 陈状 浏览次数:322

在Ajax向服务器请求的过程中,有两种方式:GET和POST。在Ajax使用的过程中,GET的使用频率要比POST高。

在了解这两种请求方式前,先了解一下HTTP头信息,包含服务器返回的响应头信息和客户端发送出去的请求信息。我们可以获取响应头信息或者设置请求头信息。我们可以在FF浏览器的firebug查看这些信息。

Ajax三部曲(二)GET与POST

PS:我们只可以获取服务器返回回来的响应头信息,无法获取向服务器提交的请求头信息,自然定义的请求头,在JavaScript端是无法获取到的。

GET请求:

GET请求是最常见的请求类型,最常用于向服务器查询某些信息。必要时,可以将查询字符串参数追加到URL的末尾,以便提交给服务器。

Ajax三部曲(二)GET与POST

通过URL后的问号给服务器传递键值对数据,服务器接收到返回响应数据。特殊字符传参产生的问题可以使用encodeURIComponent()进行编码处理,中文字符的返回及传参,可以将页面保存和设置为uft-8格式即可。

Ajax三部曲(二)GET与POST

PS:当没有encodeURIComponent()方法时,在一些特殊字符比如“&”,会出现错误导致无法获取。

POST请求:

POST请求可以包含非常多的数据,我们在使用表单提交的时候,很多就是使用的POST传输方式。

xhr.open("post", "test.php", true);

而发送POST请求的数据,不会跟在URL的尾巴上,而是通过send()方法向服务器提交数据。

xhr.send("name=jims&age=25");

一般来说,向服务器发送POST请求由于解析机制的原因,需要进行特别的处理。因为POST请求和Web表单提交是不同的,需要使用XHR来模仿表单提交。

xhr.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");

PS:从性能上来讲POST请求比GET请求消耗更多一些,用相同数据比较,GET最多比POST快两倍。

声明:该文观点仅代表作者本人,牛骨文系教育信息发布平台,牛骨文仅提供信息存储空间服务。