readyState和status属性是什么以及AJAX怎样接收服务器返回的数据
创始人
2024-12-16 12:22:09
0次

  在讲解如何接收服务器数据之前,先来看一下 XMLHttpRequest 对象的 readyState 和 status 属性。下面小编来讲解下readyState 和 status 属性是什么?AJAX怎样接收服务器返回的数据?

  readyState 和 status 属性是什么

  readyState 属性保存有 XMLHttpRequest 对象的交互状态,从 0 到 4 变化:

  0 :未初始化(还没有调用send()方法);

  1:载入(已调用send()方法,正在发送请求);

  2:载入完成(send()方法执行完成,已经接收到全部响应数据);

  3:交互(正在解析响应数据);

  4:完成(响应数据解析完成,可以在客户端调用了)。

  status 属性保存有 XMLHttpRequest 对象与后台交互时服务器返回的一个状态码。例如:

  200:OK,请求发送成功;

  404:未找到页面。

  查看完整的 status 状态码:Ajax status 状态对照表

  注意:readyState 和 status 的含义不同,readyState 是XMLHttpRequest 对象的交互状态,共有 5 个状态,与服务器无关;status 是服务器返回的一个状态码,表示服务器的响应结果,例如,200 表示服务器响应成功,404 表示请求的文件在服务器上不存在。

  AJAX 请求成功,xmlhttp.readyState=4,xmlhttp.statue=200,代码:

  if (xmlhttp.readyState==4 && xmlhttp.status==200){

  // AJAX 请求成功,处理响应数据

  }

  事件句柄 onreadystatechange

  onreadystatechange 是一个事件句柄,存储函数(或函数名),每当 readyState 属性改变时,就会调用该函数。

  当发送一个 AJAX 请求后,客户端无法确定请求何时完成,所以需要用事件机制来捕获请求的状态,即 readyState 的值,onreadyStateChange 实现了这一功能。

  如下代码所示:

  xmlhttp.onreadystatechange=function(){

  // 每次改变 readyState,都会调用该方法

  if (xmlhttp.readyState==4 && xmlhttp.status==200){

  // AJAX 请求成功,处理响应数据

  }

  }

  AJAX怎样接收服务器返回的数据

  接收来自服务器的响应数据,请使用 XMLHttpRequest 对象的 responseText 或 responseXML 属性。

  属性 描述

  responseText 将响应数据作为字符串解析。

  responseXML 将响应数据作为 XML 解析。

  例如,将服务器返回的数据更新到 id="demo" 的节点:

  ?

  1

  document.getElementById("demo").innerHTML=xmlhttp.responseText ;

  注意:服务器返回的数据一般作为字符串来解析,很少作为 XML 来解析,这里不再讲述 responseXML 。

  到此,我们终于可以实现一个完整的 AJAX 请求了。

  下面的代码展示了如何获取客户端 IP 地址:

  script type="text/javascript">

  var xmlhttp;

  // 创建 XMLHttpRequest 对象

  try{

  // code for IE7+, Firefox, Chrome, Opera, Safari

  xmlhttp=new XMLHttpRequest();

  }catch(e){

  // code for IE6, IE5

  xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");

  }

  xmlhttp.onreadystatechange=function(){

  if (xmlhttp.readyState==4 && xmlhttp.status==200){ // 响应成功

  document.getElementById("demo").innerHTML=xmlhttp.responseText;

  }

  }

  xmlhttp.open("POST","/demo/javascript/ajax/ajaxDemo.php?action=getIP",true);

  xmlhttp.send();

  /script>

  注意:onreadystatechange 需要在请求发送之前设定,编写代码时,要写在 open() 和 send() 之前。

相关内容

热门资讯

空调连续工作多久需要停机休息 空调连续工作的时间取决于多个因素,包括空调的型号、功率、使用环境和维护情况等。一般来说,空调可以连续...
空调哪个符号是除湿的 空调除湿功能通常用一个水滴形状的符号表示。不同品牌和型号的空调遥控器可能会有所差异,但一般来说,除湿...
格力空调多长时间加一次氟利昂 1、一般情况下,空调对氟利昂的使用量是非常小的,所以在空调使用了四年左右的时候再考虑加也没问题。2、...
空调用多长时间需要加氟一次 一般情况下是五年。当出现以下这几种情况时,空调才需要加氟。1、空调的室内机和室外机各有两个接口,当接...
格调生活·C标思享荟:卡萨帝在... 9月12日的郑州龙湖金融岛,夜风轻拂,灯光璀璨。“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑...
品牌价值破千亿、高端份额持续领... 9月12日,“C标时刻共传奇——卡萨帝思享荟暨20周年品牌盛典郑州站”在郑州龙湖金融岛举办。2026...
空调主板坏了修800还是换新的 空调主板坏了是修还是换新,需要考虑多个因素,以下是一些建议:1. 维修成本:如果维修费用较低,比如 ...
空调开多久需要休息多长时间 问题:空调开多久需要休息多长时间回答:1、在使用空调的过程中,一般空调开7~8个小时左右需要休息2~...
中央空调多长时间清洗一次 1、一般空调开机前清洗一次即可,空调开机中间时段再清洗一次,空调关机时清洗一次,这样比较合理。2、空...
中央空调氟利昂多久加一次 看空调制热和制冷程度,很多人的观点认为氟利昂必须一年放一次,其实这个观点是错误的,理解上面有点偏差,...