ajax

AJAX异步请求详解

作用

能够向服务器请求额外的数据而无须卸载页面(即刷新),能够实现异步请求。

实现步骤

1、创建核心对象 XMLHttpRequest
  var xhr = new XMLHttpRequest();
2、打开请求 open()
  xhr.open(参数1,参数2,参数3);
  参数1:请求类型(GET/POST)
  参数2:请求的地址
  参数3:是否异步 true表示异步,false表示同步
如果为post请求,需要在后面再添加一句:
  xhr.setRequestHeader(‘Content-Type’,‘application/x-www-form-urlencoded’)
3、发送请求 send()
  xhr.send(参数);
  参数:
  如果是GET请求,参数直接设置在请求的路径之后,所以设置为null
  如果是POST请求,有参数则设置参数,无参数则设置为null
当请求发送到服务器端,收到响应后,响应的数据会自动填充 XHR 对象的属性。
属性名         说明
responseText     作为响应主体被返回的文本
responseXML    如果响应主体内容类型是"text/xml"或"application/xml",则返回包含响应数据的 XML DOM 文档
status        响应的 HTTP 状态
statusText      HTTP 状态的说明
4、解析响应
  xhr.responseText 响应的结果
同步:需要判断status属性是否为200,响应成功才解析响应。
异步:首先需要添加readystatechange 事件,判断readyState是否为4,完全响应,在执行和同步一样的步骤。

status属性

status:HTTP 状态代码。
HTTP状态码   状态字符串      说明
200        OK     服务器成功返回了页面
400      Bad Request    语法错误导致服务器不识别
401      Unauthorized   请求需要用户认证
404      Not found     指定的 URL 在服务器上找不到
500     Internal Server Error   服务器遇到意外错误,无法完成请求
503     ServiceUnavailable  服务器过载或维护导致无法完成请求

readyState 属性

使用使用异步调用的时候,检测 readyState 属性,每当 readyState 属性改变时,触发readystatechange 事件。
值     状态        说明
0    未初始化    尚未调用 open()方法
1     启动    已经调用 open()方法,但尚未调用 send()方法
2     发送     已经调用 send()方法,但尚未接受响应
3     接受     已经接受到部分响应数据
4     完成     已经接受到全部响应数据,而且可以使用

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值