封装属于自己的 Ajax 思路:
调用函数传参格式是对象 type 请求方式 url 请求的URL地址 data 发送请求时携带的数据 success 请求成功的回调函数
1 function bo(obj) {
2 // 遍历对象里面的 data 属性 转换为查询字符串
3 var data = dordata(obj.data)
4 // 处理传过来的数据
5 function dordata(objdata) {
6 var dataStr = [];
7 for (var k in objdata) {
8 dataStr.push(`${k}=${objdata[k]}`)
9 }
10 // 对象转换为数组,再用 array.join('&')方法拼接为字符串
11 return dataStr.join('&');
12 }
13 var xhr = new XMLHttpRequest();
14 // 判断是 get or post
15 if (obj.type.toUpperCase() === 'GET') {
16 xhr.open('GET', `${boj.url}?${data}`)
17 xhr.send();
18 } else if (obj.type.toUpperCase() === 'POST') {
19 xhr.open('POST', obj.url);
20 xhr.setRequestHeader('Content-Type', 'x-www-form-urlencoded');
21 xhr.send(data);
22 }
23 // 获取数据
24 xhr.onreadystatechange = function () {
25 if (xhr.readyState === 4 && xhr.status === 200) {
26 data.success(JSON.parse(xhr.responseText));
27 }
28 }
29 }