复习笔记——手写AJAX

94 阅读1分钟
const ajax = (method, urrl, data,success,fail) =>{
	var request = new XMLHttpRequest()
	request.oprn(method,url);
	request.onreadystatechange = function () {
		if(request.readyState === 4){
			if(request.status >= 200 && request,status < 300 || request.status === 304){
				success(request)
			}else{
				fail(request)
			}
		}
	};
	request.send()
}

关于AJAX,还有个知识点

关于AJAX里seadyState的状态码,MDN给的答案是


XMLHttpRequest.readyState 属性返回一个 XMLHttpRequest 代理当前所处的状态。一个 XHR 代理总是处于下列状态中的一个:

状态描述
0UNSENT代理被创建,但尚未调用 open() 方法。
1OPENEDopen() 方法已经被调用。
2HEADERS_RECEIVEDsend() 方法已经被调用,并且头部和状态已经可获得。
3LOADING下载中;responseText 属性已经包含部分数据。
4DONE下载操作已完成。
  • UNSENT

  • XMLHttpRequest 代理已被创建, 但尚未调用 open() 方法。

  • OPENED

  • open() 方法已经被触发。在这个状态中,可以通过  setRequestHeader() 方法来设置请求的头部, 可以调用 send() 方法来发起请求。

  • HEADERS_RECEIVED

  • send() 方法已经被调用,响应头也已经被接收。

  • LOADING

  • 响应体部分正在被接收。如果 responseType 属性是“text”或空字符串,responseText 将会在载入的过程中拥有部分响应数据。

  • DONE

  • 请求操作已经完成。这意味着数据传输已经彻底完成或失败。