class Ajax { constructor() { this.ajax = new XMLHttpRequest(); } /** * * @param {*} params * { * url: '', * data: { * id: 1, * page: 2 * }, * header: { * 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8' * } * } */ get(params) { return new Promise((success, error) => { var str = "" for (const key in params.data) { str += `&${key}=${params.data[key]}` } str = str.replace("&", "?") this.ajax.open("GET", `${config.checkUrl()}${params.url}${str}`) //由基地址 短地址 加参数组成 this.ajax.send() this.readystatechange(success, error) }) } post() { } readystatechange(success, error) { this.ajax.onreadystatechange = () => { if (this.ajax.readyState == 4) { if (this.ajax.status == 200) { var data = JSON.parse(this.ajax.responseText) success(this.checkStatus(data)) //如果http状态码和ajax状态码都请求成功就调用判断接口方法 this.checkStatus } else { error(this.ajax) } } } } //判断接口的状态 checkStatus(data) { switch (data.status) { case 200: return data.result break; case 404: alert(data.msg); throw new Error(data.msg) break; default: break; } } }