javascript XHR手写
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript XHR手写相关的知识,希望对你有一定的参考价值。
var xhr = new XMLHttpRequest()
xhr.onreadystatechange = function () {
// 这里的函数异步执行,可参考之前 JS 基础中的异步模块
if (xhr.readyState == 4) {
if (xhr.status == 200) {
alert(xhr.responseText)
}
}
}
xhr.open("GET", "/api", false)
xhr.send(null)
*************************
`xhr.readyState`的状态码说明:
- 0 -代理被创建,但尚未调用 `open()` 方法。
- 1 -`open()` 方法已经被调用。
- 2 -`send()` 方法已经被调用,并且头部和状态已经可获得。
- 3 -下载中, `responseText` 属性已经包含部分数据。
- 4 -下载操作已完成
************************
`xhr.status`即 HTTP 状态码,有 `2xx` `3xx` `4xx` `5xx` 这几种,比较常用的有以下几种:
- `200` 正常
- `3xx`
- `301` 永久重定向。如`http://xxx.com`这个 GET 请求(最后没有`/`),就会被`301`到`http://xxx.com/`(最后是`/`)
- `302` 临时重定向。临时的,不是永久的
- `304` 资源找到但是不符合请求条件,不会返回任何主体。如发送 GET 请求时,head 中有`If-Modified-Since: xxx`(要求返回更新时间是`xxx`时间之后的资源),如果此时服务器 端资源未更新,则会返回`304`,即不符合要求
- `404` 找不到资源
- `5xx` 服务器端出错了
以上是关于javascript XHR手写的主要内容,如果未能解决你的问题,请参考以下文章
原生JavaScript手写Ajax
xhr的网络请求手写简单ajax
xhr的网络请求手写简单ajax
xhr的网络请求手写简单ajax
JavaScript基础知识——ajax
手写js实现ajax功能