封装一个ajsx

it2026-01-03  13

// 封装的辅助函数 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); } } } }

转载于:https://www.cnblogs.com/xiaozhou619/p/9827080.html

最新回复(0)