69 lines
1.8 KiB
JavaScript
69 lines
1.8 KiB
JavaScript
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(); |