为什么在执行ajax的时候req.readyState == 4都能执行到但是req.status == 200却执行不到?

我把status换成(req.status>=200&&req.status<=300)||status==304还是不行???... 我把status换成(req.status >= 200&&req.status<=300) || status==304还是不行??? 展开
 我来答
沐天空
2013-05-07 · 超过21用户采纳过TA的回答
知道答主
回答量:55
采纳率:0%
帮助的人:54.7万
展开全部
AJAX中有检查状态码的:
XMLHTTP 的 readyState 值含义:
0-未初始化,即尚未调用 open。
1-初始化,即尚未调用 send。
2-发送数据,即已经调用 send。
3-数据传送中。
4-完成。
所以,readyState == 4能执行到,说明数据接收完毕,此时可以通过responseBody和responseText获取完整的回应数据。
status==200 这个xmlhttp与后台交互时返回的一个状态码,200指的是正常交互完成,404指的是文件未找到,500是出现内部服务器错误,一般来说这三个用得比较多。如果你不确定,你用alert(xmlhttp.status)输出它的值,看它等于多少。
你把把status换成(req.status >= 200&&req.status<=300) || status==304)肯定是不行的,只有status==200才能满足,而且条件判断的范围过窄,有比304大的。
后面不满足,可能是服务端出现问题,你该到后台服务端代码检查一下。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式