gpt4 book ai didi

javascript - 如果服务器响应 401/402 状态,Deferred.fail() 会被触发吗?

转载 作者:行者123 更新时间:2023-12-02 15:35:46 25 4
gpt4 key购买 nike

文档说当 Deferred 对象被拒绝时,fail() 会被触发。

但是这听起来相当模糊,我不太明白从 HTTP Angular 来看它什么时候会被触发。所有 400/500 状态代码最终都会落入fail() 处理程序中吗?

最佳答案

为了清晰起见进行了编辑:

jQuery 源代码中的这一行将告诉您 jQuery 如何尊重 HTTP 语义:

    isSuccess = status >= 200 && status < 300 || status === 304;

https://github.com/jquery/jquery/blob/master/src/ajax.js#L722

原始答案:

4xx 和 5xx 是 HTTP 错误代码。 jQuery ajax 将为所有这些事件触发失败事件。

http://www.w3.org/Protocols/rfc2616/rfc2616-sec10.html

成功的 (2xx) 响应不会失败。 jQuery 还将遵循重定向 (3xx) 状态代码,因此它们也不会被视为错误,除非它遵循的重定向产生 4xx 或 5xx 状态。

正如 carhlietfl 在评论中指出的那样,如果服务器的响应不是您告诉 jQuery 所期望的,那么成功的 (2xx) 响应仍然可能会触发失败事件 - 例如如果您说 dataType:'json' 并发回了 JSON 以外的内容(包括格式不正确的 JSON),那么您的回调也会失败接到电话。

关于javascript - 如果服务器响应 401/402 状态,Deferred.fail() 会被触发吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32955414/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com