Files
ClassContent/历届学生/韩一伟/项目开发/上课项目/屁桃儿/js/ajax/ajax.js
2024-09-27 02:06:13 +08:00

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