原生ajax是XMLHttpRequest,监听readyStateChange事件,关注readyState和status。
const ajax = url => {
return new Promise((resolve, reject) => {
const xhr = new XMLHttpRequest()
xhr.open('GET', url, true) // open
xhr.setRequestHeader('Accept', 'application/json')
xhr.onreadystatechange = () => {
if (xhr.readyState !== 4) {
return
}
if (xhr.status === 200 || xhr.status === 304) {
resolve(xhr.responseText)
} else {
reject(new Error(xhr.responseText))
}
}
xhr.send() // send
})
}