Ajax请求的理解

Ajax技术的核心是XMLHttpRequest对象(简称XHR)。
优点:
1. 能够以异步方式从服务器取得更多信息,意味着用户单击后,可以不必刷新页面也能取得新数据。
2. Ajax通信与数据格式无关,不一定是XML数据。


XHR对象的用法:
1. open( )方法。接受3个参数:要发送的请求的类型(get,post等)、请求的URL和表示是否异步发送请求的布尔值。
例如: xhr.open("get","example.php",false);
说明:一是URL相对于执行代码的当前页面,也可以使用绝对路径;而是调用open( )方法不会真正发送请求,而只是启动一个请求以备发送。
注意:只能向同一个域中使用相同端口和协议URL发送请求。如果URL与启动请求的页面有任何差别,都会引发安全错误。
2. send( )方法,接受1个参数:即要作为请求主体发送的数据。如果不需要通过请求主体发送数据,则必须传入null,因为这个参数对有些浏览器是必须的。调用send()方法之后,请求就会被分派到服务器。
3.在收到响应之后,响应的数据会自动填充XHR对象的属性,有如下属性:
   responseText:作为响应主体被返回的文本。
   responseXML:如果响应的内容类型是"text/xml"或"application/xml",这个属性中将保存包含着响应数据的XML DOM文档。
   status:响应的HTTP状态。
   statusText:HTTP状态的说明。
   通过检测status来决定下一步的操作,不要依赖statusText,因为后者在跨浏览器使用时不太可靠。
 4. 状态码详解:
    100-199 用于指定客户端应相应的某些动作。 
    200-299 用于表示请求成功。 
    300-399 用于已经移动的文件并且常被包含在定位头信息中指定新的地址信息。 
400-499 用于指出客户端的错误。 
500-599 用于支持服务器错误。
5. 检测XHR对象的readyState属性,该属性表示请求/响应过程的当前活动阶段。这个属性有如下值:
0:未初始化。尚未调用open()方法;
1:启动。已经调用open()方法,但尚未调用send()方法;
2:发送。已经调用send()方法,但尚未接收到响应;
3:接收。已经接收到部分响应数据。
4:完成。已经接收到全部响应数据,而且已经可以在客户端使用了。


HTTP头部信息
XHR对象提供了两种头部(请求头部和响应头部)信息的方法。
默认情况下,在发送XHR请求的同时,还会发送下列头部信息。
Accept:浏览器能够处理的内容类型;
Accept-Charset:浏览器能够显示的字符集;
Accept-Encoding:浏览器能够处理的压缩编码;
Accept-Language:浏览器当前设置的语言;
Connection:浏览器与服务器之间连接的类型。
Cookie:当前页面设置的任何Cookie;
Host:发出请求的页面所在的域;
Referer:发出请求的页面的URI;
User-Agent:浏览器的用户代理字符串。


GET请求
对XHR而言,位于传入open()方法的URL末尾的查询字符串必须经过正确的编码才行。
查询字符串中每个参数的名称和值都必须使用encodeURIComponent()进行编码,然后才能放到URL的末尾,而且所有名-值对都必须由和号(&)分隔。


POST请求
默认情况下,服务器对POST请求和提交Web表单的请求并不会一视同仁。
与GET请求相比,POST请求消耗的资源会更多一些。从性能角度来看,以发送相同的数据统计,GET请求的速度最多可达到POST请求的两倍。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值