【问题标题】:Handling HTTP status Ajax response处理 HTTP 状态 Ajax 响应
【发布时间】:2012-11-27 18:39:31
【问题描述】:

我正在尝试将 Instapaper Simple API 集成到某些东西中,但我很难理解如何处理 API 以 Javascript 发回的响应。这篇文章很好地添加到 Instapaper 中,所以我知道提交工作正常,只是我的响应处理程序不工作。

这是我到目前为止的代码,我猜成功函数不是处理响应的正确方法。

$.ajax({
    type: 'GET',
    url: url,
    dataType: 'jsonp',
    success: function( data, status ) {
        alert("yay");
    },

    error: function(status) {
        alert("oh noes");
    }
});
return false;

添加文章后,Instapaper 返回 201。我可以在 Google Chrome 网络工具中看到 GET 返回了 201 状态。只是想知道我如何在上面的代码中处理这种状态。

谢谢。

编辑 当我点击链接激活下面的代码时,它现在会在错误功能下弹出更改,即使它已经工作了。

【问题讨论】:

标签: javascript ajax http instapaper


【解决方案1】:

jQuery.ajax() 为此类目的提供了 statusCode 映射:

$.ajax({
    type: 'GET',
    url: url,
    dataType: 'jsonp',
    statusCode: {
      200: function( data ) {
          alert("yay");
      },
      201: function( data ) {

      }
    },
    error: function(status) {
        alert("oh noes");
    }
});

http://api.jquery.com/jQuery.ajax/

【讨论】:

  • 好的,我已经添加了 statusCode 部分并且它正在工作。警报只弹出 200 一个,如果我没记错 200 意味着好吗?但是201没有弹出?
  • 您是否将 alert() 代码放入 201 回调中?我把它留空了,如果你直接使用我的代码,它什么也做不了......
  • 是的,实际上 Instapaper 似乎返回一个 200 进行身份验证,然后返回一个 201 表示 URL 已添加。
  • 如果有编号,您知道状态是否为“已取消”吗?如果您输入的用户名或密码不正确,则会取消。
【解决方案2】:
$.ajax({
  statusCode: {
    201: function() {
      alert("201!");
    }
  }
});

这应该适用于任何 http 状态代码

【讨论】:

    猜你喜欢
    • 2018-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-25
    • 1970-01-01
    • 2021-03-15
    • 2020-07-14
    • 1970-01-01
    相关资源
    最近更新 更多