封装ajax(经供参考!!!)
//封装ajax
function ajax(opt) {
//设置默认参数
var def = {
type: "get",
url: "",
data: null,
async: true,
success: null
}
//合并对象 用户传过来的值,覆盖默认对象
Object.assign(def, opt);
//1.创建请求对象
let xhr = new XMLHttpRequest();
//2.创建请求信息
xhr.open(def.type, def.url, def.async);
//3.发送请求
if (def.type == "get" || def.type == "GET") {
xhr.send();
} else {
//设置请求头
xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
xhr.send(def.data);
}
//4.监听请求状态
xhr.onreadystatechange = function () {
if (xhr.readyState == 4 && xhr.status == 200) {
def.success && def.success(xhr.responseText)
}
}
}
//readyState存有 XMLHttpRequest 的5种状态。从 0 到 4 发生变化。
// 0: 请求未初始化
// 1: 服务器连接已建立
// 2: 请求已接收
// 3: 请求处理中
// 4: 请求已完成,且响应已就绪