1.ajax类:
class Ajax {
constructor(xhr) {
xhr = window.XMLHttpRequest ? new XMLHttpRequest() : new ActiveXObject("Microsoft.XMLHTTP");
this.xhr = xhr;
}
send(options) {
let xhr = this.xhr;
let opt = {
type: options.type || 'POST',
url: options.url || '',
async: options.async || 'true',
dataType: options.dataType || 'json',
questring: options.questring || '',
};
return new Promise((resolve, reject) => {
xhr.open(opt.type,opt.url,opt.async);
xhr.onreadystatechange = () => {
if(xhr.readyState === 4) {
if(xhr.status === 200){
if(opt.dataType === 'json'){
const data = JSON.stringify(xhr.responseText);
resolve(data);
//console.log(data);
}
}else {
reject(new Error(xhr.status || 'Server is fail.'));
}
}
};
xhr.onerror = () => {
reject(new Error(xhr.status || 'Server is fail.'));
};
xhr.setRequestHeader("Content-Type","application/json; charset=utf-8");
xhr.send(opt.questring);
})
}
}
2.调用
let getAjax = new Ajax();
getAjax.send({
type : 'POST',
url:'http://localhost:9011/getPtest.asmx/InJsonToDT',
questring:"{'inJson':'"+data+"'}"
});
3.返回值:
clickAjax = () => {
ajax.send(options).then(data => {
document.getElementById("fillin").innerHTML = data.about;
}).catch(error => {
console.log(error);
});
}