Files
ClassContent/历届学生/zheng-yuqing/项目练习/上课项目/caipu/js/ajax/index.js
2024-09-27 02:06:13 +08:00

64 lines
1.8 KiB
JavaScript

class AJAX {
constructor() {
this.baseUrl = config.checkBaseUrl();
this.http = new XMLHttpRequest();
}
/**
*
* @param {*object} parmas
*/
get(parmas) {
return new Promise((success, error) => {
// 将data 参数转化为 ?key=value&key=value
var str = ""
for (const key in parmas.data) {
str += `&${key}=${parmas.data[key]}`
}
str = str.replace("&", "?")
this.http.open("GET", `${this.baseUrl}${parmas.url}${str}`);
this.http.send();
this.readyState(success, error)
})
}
post(parmas) {
this.http.open("POST", `${this.baseUrl}${parmas.url}`);
this.http.setRequestHeader('Content-type', 'application/json; charset="utf-8"');
this.http.send(JSON.stringify(parmas.data));
this.readyState(parmas.success, parmas.error)
}
put() { }
delete() { }
// 给 get post put delete 进行状态监听的封装
readyState(success, error) {
this.http.onreadystatechange = () => {
if (this.http.readyState == 4) {
if (this.http.status == 200) {
var data = JSON.parse(this.http.response);
switch (data.status) {
case 200:
success(data.result)
break;
case 404:
alert(data.message)
throw new Error(data.message)
break;
}
// success(data)
} else {
error(this.http)
}
}
}
}
}
var http = new AJAX();