Files
ClassContent/历届学生/font-end-nine/项目练习/学生项目/张婷/练习/ajax/ajax封装练习/ajax promise.js
2024-09-27 02:06:13 +08:00

38 lines
980 B
JavaScript

class Ajax{
constructor() {
this.ajax = new XMLHttpRequest();
}
get(params){ //(success,error)
return new Promise((resolve,reject) => {
var str = ""
for (const key in params.data) {
str += `&${key}=${params.data[key]}`
}
str = str.replace("&", "?")
this.ajax.open("GET", `${params.url}${str}`)
this.ajax.send()
this.readystatechange(resolve, reject)
})
}
post() { }
readystatechange(resolve, reject) {
this.ajax.onreadystatechange = () => {
if (this.ajax.readyState == 4) {
if (this.ajax.status == 200) {
var data = JSON.parse(this.ajax.responseText)
// console.log(data);
resolve(data)
} else {
reject(this.ajax)
}
}
}
}
}
var ajax = new Ajax();