jQuery成功函数是否采用状态码200?

时间:2019-10-21 16:45:52

标签: jquery ajax

在ajax成功函数中,是否假定状态码为200?还是返回304或503会成功?

什么真正定义了成功?

1 个答案:

答案 0 :(得分:2)

您是正确的,如果jQuery ajax收到HTTP 503 ...或500或404等,则将“失败”。它也(显然)在ECONNREFUSED或任何套接字级别(通信)错误时也会失败。

以下是文档:

  

https://api.jquery.com/jquery.ajax/

     

jQuery.ajax():执行异步HTTP(Ajax)请求。

     

jqXHR.fail(function( jqXHR, textStatus, errorThrown ) {});

     

错误回调选项的替代构造.fail()   方法替换不推荐使用的.error()方法。参考   deferred.fail()了解实施细节。

     

https://api.jquery.com/deferred.fail/

     

deferred.fail():添加拒绝Deferred对象时要调用的处理程序。

值得注意的是,连接可以成功...服务器可以返回HTTP 200 / OK ...,而您的jQuery Ajax调用可以 STILL 触发“失败”。

例如,如果您期望JSON响应,并且服务器返回XML:

https://www.mkyong.com/jquery/jquery-ajax-request-return-200-ok-but-error-event-is-fired/

其他信息:

  • 要回答您的原始问题:是的,“成功”通常表示HTTP200。

  • 但是,除了非HTTP 200之外,还有许多其他事情可以触发“失败”。

  • 您甚至可以拥有HTTP 200,并且仍然“失败”(通过上面的链接)。

  • 或者具有非HTTP 200并且仍然“成功”(例如HTTP 201)。

  • HTTP 304是“特殊情况”。看herehere

问:您的问题得到回答了吗?

相关问题