一、Ajax 状态值

在创建ajax对象,配置ajax对象,发送请求,以及接收完服务器端响应数据,这个过程中的每一个步骤都会对应一个数值,这个数值就是ajax状态值。

ajax状态值 说明
0 请求未初始化(还没有调用open())
1 请求已经建立,但是还没有发送(还没有调用send())
2 请求已经发送
3 请求正在处理中,通常响应中已经有部分数据可以用了
4 响应已经完成,可以获取并使用服务器的响应了

使用ajax对象下的readyState属性可以到获取ajax的状态值

XMLHttpRequest.readyState // 获取Ajax状态值

这里需要注意和区分一下 Ajax状态值与状态码(Http状态码)的区别

Ajax状态码(值): 表示Ajax请求的过程状态 ajax对象返回的
Http状态码: 表示请求的处理结果 是服务器端返回的

二、onreadystatechange 事件

只要 readyState属性发生变化,就会调用相应的处理函数。这个回调函数会被用户线程所调用。XMLHttpRequest.onreadystatechange 会在 XMLHttpRequestreadyState属性发生改变时触发 readystatechange 事件的时候被调用。

语法:

XMLHttpRequest.onreadystatechange = callback;

取值:readyState 的值改变的时候,callback函数会被调用。

示例:

var xhr = new XMLHttpRequest();
// 0 已经创建了ajax对象 但是还没有对ajax对象进行配置
console.log(xhr.readyState);
xhr.open('get', 'http://localhost:3000/readystate');
// 1 已经对ajax对象进行配置 但是还没有发送请求
console.log(xhr.readyState);// 当ajax状态码发生变化的时候出发
xhr.onreadystatechange = function() {// 2 请求已经发送了// 3 已经接收到服务器端的部分数据了// 4 服务器端的响应数据已经接收完成console.log(xhr.readyState);// 对ajax状态码进行判断 如果状态码的值为4就代表数据已经接收完成了if (xhr.readyState == 4) {console.log(xhr.responseText);}
} xhr.send();

作为 XMLHttpRequest实例的属性,所有浏览器都支持 onreadystatechange

后来,许多浏览器实现了一些额外的事件(onloadonerroronprogress 等)。详见 使用 XMLHttpRequest。

更多现代浏览器,包括 Firefox,除了可以设置· on* ·属性外,也提供标准监听器 addEventListener() API来监听XMLHttpRequest事件。

三、两种获取服务器端响应方式的区别

区别描述 onload事件 onreadystatechange事件
是否兼容IE低版本 不兼容 兼容
是否需要判断Ajax状态码 不需要 需要
被调用次数 一次 多次

推荐使用onload事件

Ajax获取服务器端的响应相关推荐

  1. Ajax --- 获取服务器端的响应

    虽然这种方式已经过时了,但是依然还有很多人在用.因此,把它作为了解的知识点,当看到别人在用时,知道是什么意思就可以了. 1. 先了解 ajax 状态码 在创建ajax对象,配置ajax 对象,发送请求 ...

  2. 前端学习(1422):ajax获取服务器端的响应

    // 引用expess框架 const express = require('express'); // 处理路径 const path = require('path');const bodyPar ...

  3. Ajax获取服务器端响应数据的两种方式

    方式一:onload xhr.onload = function (){console.log(xhr.responseText);} 方式二: Ajax状态码: 在创建ajax对象,配置ajax对象 ...

  4. ajax获取服务器端数据参数详解

    1.url: 要求为String类型的参数,(默认为当前页地址)发送请求的地址. 2.type: 要求为String类型的参数,请求方式(post或get)默认为get.注意其他http请求方法,例如 ...

  5. AJAX学习笔记(基本使用,请求参数传递,获取服务端响应,错误处理,低版本IE浏览器缓存问题及解决)

    1. Ajax实现步骤 创建ajax对象 let xhr = new XMLHttpRequest(); 告诉ajax请求地址及请求方式 xhr.open('get','http://www.exam ...

  6. 使用ajax从服务器端获取数据

    使用ajax从服务器端获取数据的步骤: 代码表示: <!DOCTYPE html> <html><head><meta charset="UTF-8 ...

  7. Ajax获取gzip,如何在javascript中解压缩gzip xhr响应

    我有一个来自Web请求的gzipped响应,我需要在JavaScript中解压缩(实际上,在AJAX调用的成功函数中 - 我的代码在无头浏览器中运行,并且没有内置的gzip完整浏览器提供的处理支持). ...

  8. js获取应用服务器时间,JavaScript获取服务器端时间的方法

    用js做时间校正,获取本机时间,是存在bug的. 使用js也可获取到服务器时间,原理是使用 ajax请求,返回的头部信息就含有服务器端的时间信息,获取到就可以了.以下: 1.依赖jQuery 代码: ...

  9. ajax对日期处理,AJAX获取服务器当前时间及时间格式输出处理

    AJAX获取服务器当前时间 ------------------------------ WebService1.asmx---------------------------------- // 若 ...

最新文章

  1. ubuntu chrome java插件_在Ubuntu中为Chrome安装Java插件
  2. python接口自动化(十四)--session关联接口(详解)
  3. Mysql 内置函数
  4. dw_mysql】apache_怎么将dreamweaver与apache服务器连接
  5. php pfm 改端口,罗马2ESF和PFM 修改建筑 军团 派系 兵种等等等很多东西的教程
  6. 使用promise解决回调地狱_「每日一题」Promise 是什么?
  7. Java中Integer类的方法
  8. 电脑桌面背景色及分辨率设置问题-仅供参考
  9. java小项目-继承-接口-Swing窗口(一共5个demo)
  10. mysql the cabinet_mysql 一个较特殊的问题:You can’t specify target table ‘wms_cabinet_form’ | 很文博客...
  11. SQLServer -ServiceBroker
  12. 如何实现自动化按图片搜索淘宝商品(拍立淘)功能?拍立淘API接口item_search_img
  13. 到站提醒APP应用 隐私声明
  14. 重返帝国T0阵容搭配
  15. 简单的网页制作期末作业——电影泰坦尼克号(4页)
  16. rpm卸载mysql不依靠依赖_centos彻底卸载mysql(不保留数据)
  17. 实现多线程的方法有哪几种?
  18. Swiper + 图片懒加载
  19. openfire的入门学习
  20. Cross Stage Partial Network(CSPNet)

热门文章

  1. 学习R语言编程——常用算法——导数与微积分的近似计算
  2. 招聘需求 视觉工程师
  3. kali下中英文输入任意切换
  4. QT4.6.3在TQ2440上的移植
  5. 【codecs】JPEG、MPEG-1、MPEG-2和MPEG-4编解码流程对比
  6. 计算网格中直线经过的格子
  7. PythonChallenge闯关详解
  8. 半透明遮罩效果 DIV
  9. 运算器和控制器的组成部件及功能
  10. 编写程序体重身高输入和输出C语言,(C语言程序设计实验.doc