封装一个ajsx

// 封装的辅助函数
function toData(xiao) {
if (xiao === null) {
return null;
} else {
let arr = [];
for (let i in xiao) {
let str = i + '=' + xiao[i];//userName=xiaozhou age=18
arr.push(str);
}
return arr.join('&');
}
}
// 封装的ajax技术
let ajxx = function (xiaozhou) {
// 初始化
xiaozhou.data = xiaozhou.data || null;
xiaozhou.type = xiaozhou.type || "GET";
xiaozhou.asyc = xiaozhou.asyc || true;
// 创建一个跑腿的人
let ajx = null;
// 浏览器兼容性
if (window.XMLHttpRequest) {
ajx = new XMLHttpRequest();
} else {
ajx = new ActiveXObject('Microsoft.XMLHTTP');
}
// 判断需要提交的方式
if (xiaozhou.type == "POST") {
ajx.open('POST', xiaozhou.url, xiaozhou.asyc);
// 提交头
ajx.setRequestHeader("Content-Type", "application/x-www-form-urlencoded;charset=UTF-8");
let tijiao = toData(xiaozhou.data)
ajx.send(tijiao);
} else {
let tijiao = xiaozhou.url + '?' + toData(xiaozhou.data);
ajx.open('GET', tijiao, xiaozhou.asyc);
ajx.send(null);
}
ajx.onreadystatechange = function () {
// 如果能够进入到if 说明服务器已经成功返回了数据
// 第一是判断有四个值的时候就是正确的
if (ajx.readyState === 4) {
if (ajx.status >= 200 && ajx.status < 300 || ajx.status == 304) {
// 把数据更新到页面
xiaozhou.success(ajx.responseText);
// 证明去服务器跑了一圈
// xiaozhou.success(xiaozhou.data);
}
}
}
}

猜你喜欢

转载自www.cnblogs.com/xiaozhou619/p/9827080.html