class Api { constructor() { this.ajax = new XMLHttpRequest(); this.baseUrl = config.baseUrl(); } get(option) { // toast.loading(); // 转换get参数 var params = ""; for (const key in option.data) { params+= `&${key}=${option.data[key]}` } params = params.replace("&", "?") option.url = this.baseUrl + option.url + params; return new Promise((resolve,reject) => { this.ajax.open("GET",option.url); this.ajax.send(); return this.readystatechange(resolve, reject) }); } post(option) { this.ajax = new XMLHttpRequest(); toast.loading(); return new Promise( (resolve,reject) => { this.ajax.open("POST",this.baseUrl+option.url); this.ajax.setRequestHeader("Content-Type","application/json"); this.ajax.setRequestHeader("bmy","liubing"); this.ajax.send(option.data); return this.readystatechange(resolve, reject) }); } readystatechange(success,error) { this.ajax.onreadystatechange = () => { if (this.ajax.readyState == 4 ) { if (this.ajax.status == 200) { var data = JSON.parse(this.ajax.response); // toast.clearLoading(); switch (data.status) { case 200: success(data.result); break; case 500: toast.tips({ message: data.message }); throw new Error(data.message); break; } } else { error && error(this.ajax) throw new Error("网络请求出错"); } } } } }