【问题标题】:Prevent JavaScript from breaking with a 403 HTTP response防止 JavaScript 中断 403 HTTP 响应
【发布时间】:2012-03-05 01:13:46
【问题描述】:

我正在使用 JQuery $.get 请求从 Last.fm 网站获取用户信息。

由于某些用户的帐户是私人帐户,我有时会收到 403 错误,指出需要进行身份验证。这破坏了 JS 代码。 last.fm API 不允许您查看用户是否为私有用户。

有没有办法捕获这个错误并继续执行代码?

谢谢!

【问题讨论】:

    标签: javascript jquery http-status-code-403


    【解决方案1】:

    您最好使用代理从 API 获取数据,因为 $.ajax() 错误处理程序不会返回每个 jQery API 文档的跨域请求错误:

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

    在文档中编辑注释以获取错误选项:

    “注意:跨域脚本和 JSONP 请求不调用此处理程序。”

    【讨论】:

      【解决方案2】:

      不确定它是否适用于跨域请求,但您可以这样做:

      $.ajax({
        type: 'GET',
        statusCode: {
          403: function() {
            alert('a 403 was received');
          }
        },
        success: function() {
           alert('everything OK');
        }
      });
      

      或者如果可行的话,可以在 $.ajaxSetup() 中设置它?

      【讨论】:

      • 我实际上已经尝试过了,它会在出现错误时识别出来,但我希望它能够解决问题并继续前进。有没有办法说“忽略它!”什么时候发现错误?
      • 好吧,确实是这样,但是如果出现错误,则不会检索身份验证信息,因此它将取决于脚本的其余部分,Ajax 函数本身不会破坏您的 JS,有些否则会,所以你必须做一些检查,看看你所拥有的信息是否符合预期,如果它没有做适合该信息的事情等等。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2022-01-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多