【问题标题】:Jquery - Read HTTP response from a promise/deferred Ajax responseJquery - 从承诺/延迟的 Ajax 响应中读取 HTTP 响应
【发布时间】:2013-12-05 17:35:42
【问题描述】:

我是 jquery 承诺和延迟对象的新手。我正在尝试获取或分析 POST/PUT/DELETE ajax 请求的响应。我希望能够读取 HTTP 状态代码(200、204、...)。

当以这种方式使用 $.when 和延迟对象时:

$.when($.ajax(request)).then(callback_function(response))

可以分析HTTP状态码吗?响应 vble 本身是空的,因为响应中没有数据。如果不可能,解决方案是使用 done() 或 fail() 函数吗?如果识别 HTTP 状态代码以对其进行操作很重要,该怎么办?

【问题讨论】:

    标签: jquery jquery-deferred jquery-callback


    【解决方案1】:

    查看 jQuery 文档 http://api.jquery.com/jQuery.ajax/ 并搜索“The jqXHR Object”,您就有了解决方案。

    从 jQuery 1.5 开始,由 $.ajax() 返回的 jqXHR 对象实现了 Promise 接口,给他们所有的属性、方法和 Promise 的行为(有关更多信息,请参阅延迟对象)。 这些方法采用一个或多个函数参数,当 $.ajax() 请求终止。这允许您分配多个 单个请求上的回调,甚至在 请求可能已完成。 (如果请求已经完成,则 回调立即触发。)jqXHR 的可用 Promise 方法 对象包括:

    【讨论】:

    • 我只向 .then 传递了一个参数,因此响应为空。 .then 函数也支持这个参数 jqXHR.then(function( data, textStatus, jqXHR ) {}, function( jqXHR, textStatus, errorThrown ) {});这使得阅读 HTTP 状态代码变得容易。谢谢@DBPBTPV
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 2015-03-27
    • 2023-03-21
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多