class ajax { constructor() { // 类的参数初始化 this.baseUrl = config.checkBaseUrl(); this.xhr = new XMLHttpRequest(); } /** * * @param {*} params * { * url: 'http://127.0.0.1:3000/api/index/threeMeals', * data: { * page: 1, * id: 1 * }, * success: function() {} * } */ get(params) { return new Promise((resolve, reject) => { if (params.hasOwnProperty("data")) { var str = "" for (const key in params.data) { str += `&${key}=${params.data[key]}` } str = str.replace("&", "?") // 设置请求地址 this.xhr.open("GET", `${this.baseUrl}${params.url}${str}`) // this.xhr.send(); // 状态监听 return this.onreadystatechange(resolve,reject) } else { throw new Error("data参数必传") } }) } onreadystatechange(resolve,reject) { this.xhr.onreadystatechange = () => { if (this.xhr.readyState == 4) { if (this.xhr.status == 200) { var res = JSON.parse(this.xhr.response); switch (res.status) { case 200: resolve(res.result) break; case 404: alert(res.msg); throw new Error(res.msg); break; } } else { alert("网络请求错误") } } } } } var http = new ajax();