确定AJAX调用是否成功的正确方法是什么?
我在prototype.js中看到
return !status || (status >= 200 && status < 300);
并在jQuery中:
// IE error sometimes returns 1223 when it should be 204 so treat it as success, see #1450
return !xhr.status && location.protocol == "file:" ||
( xhr.status >= 200 && xhr.status < 300 ) || xhr.status == 304 || xhr.status == 1223;
哪一个是正确的?如果我们不使用任何Javascript库但是在基本Javascript中编写AJAX,我们应该使用哪一个?
答案 0 :(得分:5)
原型似乎更“正确”,因为它只将有效的HTTP成功代码视为成功。 jQuery更加健壮,因为它考虑了错误和其他经常成功的代码。
答案 1 :(得分:1)
HTTP状态属于以下类别:
2XX:成功
3XX:重定向
4XX:客户端错误
5XX:服务器错误。
因此,200-300是ajax调用的“ok”结果。
有关状态代码的详细信息,请查看http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html
欢呼声,
JRH。