本文由何小蒙原创,如需转载要注明来源。
一直用的axios,属于会用但是对原理不精通,知道axios是对ajax的封装。现在重新学习下。
注:本人理解,仅供参考。
js原生使用方法
var xmlhttp = new XMLHttpRequest();
xmlhttp.open('GET','../../JIEKOU', true); // GET方法异步请求
xmlhttp.send(null);
send里面如果不需要发送参数,必须传入null。因为这个参数对有些浏览器是必需的。
XMLHttpRequest 对象
这个对象是用于我们熟知的功能:对服务器发送请求,处理从服务器返回的数据。
readyState
0:未初始化
1:已经open()但是还没send()
2:已经send()但是还没返回值
3:获取到部分返回值
4:获取到全部返回值
通常我们只对状态4感兴趣,通过onreadystatechange来判断状态的改变
xmlhttp.onreadystatechange = function() {
if (xmlhttp.readystate == 4) {
// 此处使用xhr对象不使用this是因为onreadystatechange作用域的问题
// 使用this此函数会执行失败
}
}
XMLHttpRequest 2
因为xhr用的人太多了,w3c就直接出了个规范,还稍微扩展了下。
- formdata 可以直接用表单了,通过append设置表单
- timeout 设置超时,超时后用ontimeout来处理
- overrideMimeType 重写xhr响应的MIME类型
最后这个咱基本也没用过,以前基本是用来处理xml文件的,大致了解下。估计好久不用过段时间又得忘
其他相关系列:
前端之ajax笔记(一)
前端之ajax笔记(二)
前端之ajax笔记(三)