你能在jquery 1.5中推迟statusCode吗?

3

我看到他们添加了一个状态码的函数

statusCode(新增1.5)默认映射: {} 包含数字HTTP代码和当响应具有相应代码时要调用的函数的映射。例如,以下内容将在响应状态为404时发出警报:

$.ajax({   statusCode: {404: function() {
    alert('page not found');   } }); 

如果请求成功,状态码函数将与成功回调函数使用相同的参数;如果出现错误,则它们将采用与错误相同的参数。

我想知道你是否可以像这样做:$.ajax({...}).statusCode(function(){...});

类似于您可以执行的方式

var jqxhr = $.ajax({ url: "example.php" })
    .success(function() { alert("success"); })
    .error(function() { alert("error"); })
    .complete(function() { alert("complete"); })
1个回答

4

是的,你可以这样做。据我所知,该功能未记录在文档中,但其功能似乎正如您所期望的一样--您传递一个处理程序函数对象映射,其中键是HTTP响应代码,值是处理程序函数。请参阅源代码

示例

$.ajax({ url: "example.php" })
    .statusCode({
        200: function(){
            alert('success');
        },
        404: function(){
            alert('not found');
        }
    });

如果你使用了.success,那么这就像是一个200响应,对吧? - chobo2
@chobo2 当状态码小于400时,“success”将运行。否则,“error”处理程序将运行。“statusCode”允许更细粒度的控制,如果您需要的话。 - lonesomeday
jQuery 1.5不会像JSONP所给出的那样触发400、401: 401: function(){ alert('未获授权'); }, 400: function(){ alert('错误请求'); }这是已知问题。 - Mohammad Arif
@Mohammed 这是不可能的。JSONP 通过将 script 元素插入页面来工作:没有关于 script 元素失败的编程通知。 - lonesomeday

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接