function myAxios(config) {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest()
//如果存在想要放在链接后的参数?name=1&password=2
if (config.params) {
const paramsObj = new URLSearchParams(config.params)
const queryString = paramsObj.toString()
config.url += `?${queryString}`
}
//定义请求方法,还有url
xhr.open(config.method || 'GET', config.url)
//xhr发送请求加载完成后,执行
xhr.addEventListener('loadend', () => {
if (xhr.status >= 200 && xhr.status < 300) {
resolve(JSON.parse(xhr.response))
} else {
reject(new Error(xhr.response))
}
})
//如果存在json请求体
if (config.data){
const jsonStr = JSON.stringify(config.data)
xhr.setRequestHeader('Content-Type','application/json')
xhr.send(jsonStr);
}else {
xhr.send()
}
})
}
标签:axios,const,自定义,url,xhr,简单,new,config From: https://www.cnblogs.com/cyknote/p/17809611.html