function ajax(options = {}){
return new Promise((resolve, reject) => {
const { method, data, url } = options;
const xhr = new XMLHttpRequest();
xhr.onreadystatechange = () => {
if(xhr.readyState == 4){
xhr.status == 200 ? resolve(xhr.responseText) : reject();
}
}
xhr.onerror = err => reject(err);
let encodeData = '';
if(typeof data === 'object'){
let keys = Object.keys(data);
let newData = keys.map(key => `${encodeURIComponent(key)}=${encodeURIComponent(data[key])}`);
encodeData = newData.join('&')
}
xhr.open(method, url, true);
if(method === 'get'){
xhr.send(null);
}else{
xhr.setRequestHeader('Content-Type','application/x-www-form-urlencoded') //post 设置请求头
xhr.send(encodeData);
}
})
}
手写ajax
最新推荐文章于 2022-10-16 20:17:39 发布