千家信息网

readyState和status属性是什么以及AJAX怎样接收服务器返回的数据

发表于:2024-11-24 作者:千家信息网编辑
千家信息网最后更新 2024年11月24日,readyState和status属性是什么以及AJAX怎样接收服务器返回的数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所
千家信息网最后更新 2024年11月24日readyState和status属性是什么以及AJAX怎样接收服务器返回的数据

readyState和status属性是什么以及AJAX怎样接收服务器返回的数据,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

  在讲解如何接收服务器数据之前,先来看一下 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")[xss_clean]=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")[xss_clean]=xmlhttp.responseText;

  }

  }

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

  xmlhttp.send();

  /script>

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

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注行业资讯频道,感谢您对的支持。

数据 服务器 服务 属性 状态 成功 对象 代码 方法 事件 函数 客户 客户端 句柄 字符 字符串 正在 处理 帮助 不同 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 中国第五届网络安全论坛 浦东新区技术网络技术供应 怎么成为一个软件开发架构师 四川正规软件开发费用是多少 ocr身份证识别数据库 云计算和网络安全哪个简单点 网吧服务器配置清单 上海工业软件开发价格表 徐州新联通信网络技术有限公司 深圳软件开发教学 武汉软件开发公司公司哪家好 女流服务器 软件开发都是开发什么软件的 怎么登陆服务器ftp 温州导航软件开发 世纪易方网络技术有限公司 河北电脑软件开发哪家专业 陕西党性体检软件开发电话 井下供配电网络安全要求 软件开发 项目立项申请书 闪电互联网络科技 边峰网络技术有限公司 ns代理服务器端口号 防疫系统网络技术 网页设计加sql数据库 计算机网络技术怎么考实验题 四川大数据软件开发大概多少钱 mes软件开发怎么样 怎么知道传奇服务器注册了多少人 php连接阿里云数据库
0