代码如下:
const xhr = new XMLHttpRequest
xhr.open('GET', './data/test.json', true)
xhr.send(null)
xhr.onreadystatechange = () => {
console.log(xhr.readyState)
if (xhr.readyState === 4) {
if (xhr.status === 200) {
console.log(JSON.parse(xhr.responseText))
} else if (xhr.status ===404) {
console.log('404 not found')
}
}
}
这里的onreadystatechange 是一个readyState变化的触发函数。
0,1是监听open方法变化的。监听不到0,1是因为执行到这个监听函数的时候open方法已经执行完了。因为写了true所以send方法变成异步了才能监听的到2,3,4.否则写成false同步是一个变化都监听不到的。必须要写到send的前面去。如果用同步请求的话。