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)) } 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; } } }