68 lines
1.4 KiB
JavaScript
68 lines
1.4 KiB
JavaScript
class Ajax {
|
|
|
|
constructor() {
|
|
this.ajax = new XMLHttpRequest()
|
|
}
|
|
|
|
// { url: '请求地址', data: {} //请求参数 }
|
|
get (params) {
|
|
Tips.loading()
|
|
var str = ""
|
|
for (const key in params.data) {
|
|
str += `&${key}=${params.data[key]}`
|
|
}
|
|
str = str.replace("&", "?")
|
|
this.ajax.open("GET", this.baseUrl() + params.url + str);
|
|
|
|
return new Promise((resolve, reject) => {
|
|
this.ajax.send();
|
|
this.statechange(resolve, reject)
|
|
})
|
|
}
|
|
|
|
|
|
post () {
|
|
this.open("POST", "http://127.0.0.1/index.php")
|
|
}
|
|
|
|
|
|
statechange (resolve, reject) {
|
|
this.ajax.onreadystatechange = () => {
|
|
if (this.ajax.readyState == 4) {
|
|
Tips.close()
|
|
if (this.ajax.status == 200) {
|
|
var data = JSON.parse(this.ajax.responseText)
|
|
switch (data.status) {
|
|
case 200:
|
|
resolve(data.result)
|
|
break;
|
|
|
|
case 404:
|
|
alert(data.msg)
|
|
reject(data)
|
|
throw new Error(data.msg)
|
|
break;
|
|
}
|
|
} else {
|
|
reject(this.ajax)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
baseUrl() {
|
|
switch (config.stage) {
|
|
case "dev":
|
|
return config.devBaseUrl;
|
|
break;
|
|
|
|
case "test":
|
|
return config.testBaseUrl;
|
|
break;
|
|
|
|
case "prod":
|
|
return config.prodBaseUrl;
|
|
break;
|
|
}
|
|
}
|
|
} |