1

确定 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,我们应该使用哪一个?

4

2 回答 2

5

原型似乎更“正确”,因为它只将有效的 HTTP 成功代码视为成功。jQuery 更加健壮,因为它考虑了错误和其他经常成为成功代码的东西。

于 2009-05-29T11:01:24.980 回答
1

HTTP 状态分为以下几类:

2XX:成功

3XX:重定向

4XX:客户端错误

5XX:服务器错误。

所以 200-300 是一个 ajax 调用的“ok”结果。

有关状态代码的更多详细信息,请查看http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

干杯,

jrh

于 2009-05-29T11:21:28.043 回答