代码之家  ›  专栏  ›  技术社区  ›  nonopolarity

确定Ajax调用成功的正确方法是什么?

  •  1
  • nonopolarity  · 技术社区  · 15 年前

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

    2 回复  |  直到 15 年前
        1
  •  5
  •   workmad3    15 年前

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

        2
  •  1
  •   jrharshath    15 年前

    HTTP状态分为以下类别:

    2XX:成功

    3xx:重定向

    4xx:客户端错误

    5xx:服务器错误。

    所以200-300对于Ajax调用是一个“确定”的结果。

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

    干杯,

    JRH。