Ajax ajax原生-xhr对象的属性和方法、xhr对象的创建

深碍√TFBOYSˉ_ 2021-07-24 12:20 657阅读 0赞
  1. Ajax模块在处理网络请求时包括以下四个步骤
  2. 创建Xhr对象
  3. 构建Xhr对象的属性和方法
  4. 发出HTTP请求
  5. 通过Xhr对象的方法接收服务器回传的数据
  6. 创建xhr对象
  7. var xhr=new XMLHttpRequest();
  8. xhr对象属性/方法
  9. onreadystatechange
  10. 指向一个回调函数,当页面加载状态发生改变时调用
  11. xhr.onreadystatechange=function(){};
  12. 作用:监听请求是否发送成功
  13. readyState
  14. 用一个整数和对应常量来表示XMLHttpRequest请求当前所处状态,一般会在onreadystatechange的回调函数中,通过
  15. readyState属性的值来执行不同状态的函数
  16. 具体值见下图
  17. 0 UNSENT,表示请求未发送
  18. 1 OPENED,请求准备发还未发
  19. 2 HEADERS_RECEIVED,请求已发送,但后台未收到
  20. 3 LOADING,后台正在接受,还未接收完成
  21. 4 DONE,表示已接受或本次接收失败
  22. status
  23. 表示后台接收到请求后,返回数据时,前端接收状态码
  24. 200访问正常
  25. 其他具体值见下图
  26. statusText
  27. 表示后台接收到请求后,返回数据时,前端接收状态码对应的
  28. 常量字符
  29. 200对应OK
  30. 其他具体值看下图
  31. responseText
  32. 后台返回的json字符串数据,若要转成js类型对象,需要使用
  33. JSON.parse(数据);
  34. open()
  35. 设置请求发往某处,只是设置,不是发送
  36. xhr.open('请求类型','url地址',true/false);
  37. true为异步
  38. setRequestHeader()

在这里插入图片描述

  1. send()
  2. 用于实际发出的HTTP请求
  3. xhr.send(info);
  4. get请求参数为null
  5. 设置请求发送后等待响应的时间
  6. xhr.timeout=毫秒数;
  7. 0则表示没有时间限制
  8. 设置超时后的回调函数
  9. xhr.ontimeout=function(){};
  10. 当超出timeout设置的时间后执行
  11. 上传进度回调
  12. xhr.upload.progress=function(){};
  13. 取消当前ajax发送:
  14. xhr.abort(); //使ajax请求到未初始化的状态

status和statusText属性值:

在这里插入图片描述

创建xhr对象监听代码示例:

  1. <script>
  2. var btn=document.querySelector('button');
  3. btn.onclick=function()
  4. {
  5. //创建xhr对象
  6. var xhr=new XMLHttpRequest();
  7. //监听请求是否成功
  8. xhr.onreadystatechange=function()
  9. {
  10. //通过readyState属性的值,判断当前请求状态
  11. if(xhr.readyState==4)
  12. {
  13. console.log("已接受");
  14. //通过status属性来判断前台接收状态
  15. if(xhr.status==200)
  16. {
  17. console.log(xhr.statusText);
  18. //此时表明真正接收到了数据
  19. console.log(xhr.responseText);
  20. console.log(JSON.parse(xhr.responseText));
  21. }
  22. }
  23. };
  24. }
  25. </script>

发表评论

表情:
评论列表 (有 0 条评论,657人围观)

还没有评论,来说两句吧...

相关阅读