AJAX使用
现在浏览器上写AJAX主要依靠
XMLHttpRequest
对象,低版本的IE,需要依靠
ActiveXObject
对象
实现如下:
function success(text) {
// ...
}
function fail(code) {
// ...
}
let request;
if (window.XMLHttpRequest) {
// 新建XMLHttpRequest对象
request = new XMLHttpRequest();
} else {
// 兼容低版本的IE
request = new ActiveXObject('Microsoft.XMLHTTP');
}
console.log(request.readyState); // 0
/* request对象的open方法有3个参数:
* 1.GET/POST/PUT/DELETE
* 2.URL
* 3.是否使用异步,默认是true
* 注意:不建议将第三个参数设置为false,否则浏览器将停止响应(处于假死状态),直到AJAX请求完成
*/
request.open('GET', '/api/categories');
console.log(request.readyState); // 1
//发送请求
request.send();
// 状态发生变化时,函数被回调
request.onreadystatechange = function () {
// 请求完成
if (request.readyState === 4) {
// 请求成功
if (request.status === 200) {
// 通过responseText拿到响应的文本
return success(request.responseText);
} else {
// 请求失败,将响应码传递给fail函数进行分类处理
return fail(request.status)
}
} else {
//请求未完成...
}
}
request.readyState状态备注:
0 – 对象创建完成
1 – 服务器连接已建立
2 – 请求已接收
3 – 请求处理中
4 – 请求已完成,且响应已就绪