问题描述
|
我们为什么要同时检查
xmlHttpObj.readyState =4
和
xmlHttpObj.status = 200
不只是
xmlHttpObj.readyState =4
解决方法
readyState为4表示请求已完成,但状态为200表示请求成功。错误400或更高(例如404 =未找到,例如500 =内部服务器错误)。
,在许多Ajax应用程序中,您会看到一个回调函数,该函数检查就绪状态,然后继续处理服务器响应中的数据。这是Ajax编程的一种短视且容易出错的方法。 。如果脚本需要身份验证,并且您的请求未提供有效的凭据,则服务器将返回错误代码,例如403或401。但是,由于服务器已答复请求,因此就绪状态将设置为4(即使答案不是\' t您想要或期望的要求)。结果,当您的JavaScript尝试使用不存在的服务器数据时,用户将无法获取有效数据,甚至可能会收到一个讨厌的错误,这将花费很少的精力来确保服务器不仅完成请求,而且返回\“一切正常”状态代码。该代码为“ 200”,并通过XMLHttpRequest对象的status属性进行报告。
为确保服务器不仅完成请求,而且还报告OK状态,请在xmlHttpObj.status = 200的回调函数中添加其他检查