正确的方法来测试xhr成功

时间:2014-11-04 18:48:48

标签: javascript rest xmlhttprequest

多年来,我使用以下表达式在JavaScript中测试xmlHttpRequest成功:

(xhr.status==200)

但是最近我遇到了一个REST服务,它为某些方法返回不同的成功代码(201)。所以我打算把表达改为:

(xhr.status==200||xhr.status==201)

这是否涵盖了最常见的情况,还是我仍然遗失了什么?有没有更好的方法来测试xhr的成功?

1 个答案:

答案 0 :(得分:3)

通过检查请求的readystate是否等于xhr.DONE(即4,您可以验证HTTP请求是否已成功完成(即没有网络故障或基于原因的安全问题) 1}})。

确定网络成功的HTTP响应是否代表“成功”的应用程序级操作部分是每个应用程序的问题(应用程序是否响应了您的预期?),但2XX状态代码分组在section 10 of RFC 2616为“成功”的HTTP响应。

因此,如果您想一般性地测试“成功”类型的响应,请测试200299之间的状态,包括在内。

基于a comment @dfsqjQuery also includes 304 as a possible "success" response,因为这意味着没有应用程序错误,并且资源没有任何变化。与其他3XX响应不同,304是终端,因此客户端已完成请求操作,无需在重定向中请求其他资源。