Ajax-XMLHttpRequest

  • 手动编写一个ajax,不依赖第三方库
  • 跨域的几种实现方式

知识点

XMLHttpRequest
  1. var xhr = new XMLHttpRequest();
  2. xhr.open("GET","/api",false)
  3. xhr.onreadystatechange = function () {
  4. //这里的函数异步执行,可参考之前JS基础的异步模块
  5. if(xhr.readyState == 4){
  6. if (xhr.status == 200) {
  7. alert(xhr.responseText)
  8. }
  9. }
  10. }
  11. xhr.send(null);
  • IE低版本使用ActiveXObject,和W3C标准不一样
  • IE低版本使用量已经非常少,很多网站早已不支持IE低版本
  • 建议对IE低版本的兼容性:了解即可,无需深究
状态码
  1. xhr.onreadystatechange = function () {
  2. //这里的函数异步执行,可参考之前JS基础的异步模块
  3. if(xhr.readyState == 4){
  4. if (xhr.status == 200) {
  5. alert(xhr.responseText)
  6. }
  7. }
  8. }
  • readyState
    • 0-(未初始化)还没有调用send()方法
    • 1-(载入)已调用send()方法,正在发送请求
    • 2-(载入完成)send()方法执行完成,已经接收到全部响应内容
    • 3-(交互)正在解析响应内容
    • 4-(完成)响应内容解析完成,可以在客户端调用
  • status
    • 2XX-表示成功处理请求。如200
    • 3XX-需要重定向,浏览器直接跳转
    • 4XX-客户端请求错误,如404
    • 5XX-服务端错误