为什么在执行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还是不行???
展开
1个回答
展开全部
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大的。
后面不满足,可能是服务端出现问题,你该到后台服务端代码检查一下。
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大的。
后面不满足,可能是服务端出现问题,你该到后台服务端代码检查一下。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询