AJAX---onreadystatechange事件中获取相应内容

Posted jane_panyiyun

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AJAX---onreadystatechange事件中获取相应内容相关的知识,希望对你有一定的参考价值。

onreadystatechange事件中获取相应内容

 

    // 如果需要捕获第一个状态的变化,需要注意代码执行顺序的问题(不要出现来不及的情况)
    xhr.onreadystatechange = function () {
      // 这个事件并不是只在响应时触发,状态改变就触发
      // console.log(1)
      console.log(this.readyState)
    }

 

readystate状态

 

 

 

 

通过理解每一个状态值的含义得出一个结论:一般我们是在readyState值为4时,执行响应的后续逻辑

 

    var xhr = new XMLHttpRequest()
    console.log(xhr.readyState)
    // => 0
    // 初始化 请求代理对象

 

    xhr.open(\'GET\', \'time.php\')
    console.log(xhr.readyState)
    // => 1
    // open 方法已经调用,建立一个与服务端特定端口的连接

 

 xhr.send()

 

xhr.addEventListener(\'readystatechange\', function () {
      switch (this.readyState) {
        case 2:
          // => 2
          // 已经接受到了响应报文的响应头

          // 可以拿到头
          // console.log(this.getAllResponseHeaders())
          console.log(this.getResponseHeader(\'server\'))
          // 但是还没有拿到体
          console.log(this.responseText)
          break

        case 3:
          // => 3
          // 正在下载响应报文的响应体,有可能响应体为空,也有可能不完整
          // 在这里处理响应体不保险(不可靠)
          console.log(this.responseText)
          break

        case 4:
          // => 4
          // 一切 OK (整个响应报文已经完整下载下来了)
          console.log(this.responseText)
          break
      }

 

以上是关于AJAX---onreadystatechange事件中获取相应内容的主要内容,如果未能解决你的问题,请参考以下文章

AJAX - onreadystatechange 事件(XMLHttpRequest对象的属性)

ajax的两种方式

ajax请求有哪几种方式?

javascript中的ajax不能得到return 的值,求教处理的方法