实现一个ajax:
var xhr = new XMLHttpRequest()
xhr.open('GET', 'http://api.fdsfas.com/weather.php', true)
xhr.onreadystatechange = function(){
if(xhr.readyState === 4) {
if((xhr.status >= 200 && xhr.status < 300) || xhr.status == 304){
//成功了
console.log(xhr.responseText)
} else {
console.log('服务器异常')
console.error(xhr.statusText);
}
}
}
xhr.onerror = function(){
console.log('服务器异常')
console.error(xhr.statusText)
}
xhr.send()
readyState
XMLHttpRequest.readyState 属性返回一个 XMLHttpRequest 代理当前所处的状态。一个 XHR 代理总是处于下列状态中的一个:
值 状态 描述
0 未初始化 尚未调用 open() 方法。
1 启动 已经调用open() 方法,但未调用send()方法。
2 发送 已经被调用send() 方法,但未接收到响应。
3 接受 已经接收到部分响应数据。
4 完成 已经接受到全部响应数据,可以再客户端使用。
补充:xhr.abort()取消异步数据
网友评论