51 lines
1.2 KiB
JavaScript
51 lines
1.2 KiB
JavaScript
class Ajax {
|
|
constructor() {
|
|
this.ajax = new XMLHttpRequest();
|
|
}
|
|
|
|
/**
|
|
*
|
|
* @param {*} params
|
|
* {
|
|
* url: '',
|
|
* data: {
|
|
* id: 1,
|
|
* page: 2
|
|
* },
|
|
* header: {
|
|
* 'Content-Type': 'application/x-www-form-urlencoded;charset=UTF-8'
|
|
* }
|
|
* }
|
|
*/
|
|
get(params) {
|
|
return new Promise((success, error) => {
|
|
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(success, error)
|
|
})
|
|
}
|
|
|
|
post() { }
|
|
|
|
readystatechange(success, error) {
|
|
this.ajax.onreadystatechange = () => {
|
|
if (this.ajax.readyState == 4) {
|
|
if (this.ajax.status == 200) {
|
|
var data = JSON.parse(this.ajax.responseText)
|
|
// console.log(data);
|
|
success(data)
|
|
} else {
|
|
error(this.ajax)
|
|
}
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
var ajax = new Ajax(); |