1.网络畅通,服务器端能接收到请求,服务器端返回的结果不是预期结果。
(用户给服务器发送参数,参数不符合要求,所以服务器返回非200状态码)
可以判断服务器返回的状态码,分别进行处理。
xhr.status //获取http状态码
//路由
app.get('/error', (req, res) => {
res.status(400).send('not ok')
})
//页面
<body>
<button id="btn">发送aa</button>
<script>
var btn = document.getElementById('btn');
btn.onclick = function() {
var xhr = new XMLHttpRequest();
xhr.open('get', 'http://127.0.0.1:3000/error');
xhr.send();
xhr.onload = function() {
console.log(xhr.responseText);
console.log(xhr.status)
if(xhr.status === 400){
alert('请求错误')
}
}
}
</script>
</body>
2.网络畅通,服务器端没有接受到请求,返回404状态码
检查请求地址是否错误
将上面代码地址,故意改错:error123
3.网络畅通,服务器端能接收到请求,服务器返回500状态码
服务器端的代码错误
将上面路由代码改成
app.get('/error', (req, res) => {
console.log(abc);
res.status(400).send('not ok');
})
4.网络中断,请求无法发送到服务器端
会触发xhr对象下面的onerror事件,在onerror事件处理函数中对错误进行处理
xhr.onerror = function(){
alert('网络中断')
}
总结
Ajax状态码:表示Ajax请求的过程状态,ajax对象返回的
http状态码:表示请求处理的结果,是服务器返回的
注
readyState 状态码: HTTP 状态码:
0:请求未初始化 200 - 服务器成功返回网页
1:服务器连接已建立 404 - 请求的网页不存在
2:请求已接受 503 - 服务器暂时不可用
3:请求处理中
4:请求已完成,且响应已就绪