1

我正在尝试获取 403 禁止错误的状态,我可以使用 php curl 来完成,但需要使用 jquery 来完成。

这是我的代码。

   $.ajax({

    url: 'https://s3.amazonaws.com/isdukg/01-jaimeson-complete_2_step_mix-pulse.mp3',
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    statusCode: {
      403: function() {
      alert("Forbidden");
      // or do something useful
      }
    }
});

$.ajax({

    url: 'https://s3-eu-west-1.amazonaws.com/fkcreate/Angles%2C%20Circles%20and%20Triangles..%20Instrumental.mp3',
    type: 'GET',
    crossDomain: true,
    dataType: 'jsonp',
    statusCode: {
      403: function() {
      alert("Forbidden");
      // or do something useful
      }
    }
});

如果您打开控制台窗口并加载页面,其中一个 url 将产生 403 禁止错误,您可以在此处看到 - http://scaredem.users36.interdns.co.uk/

我似乎无法抓住这个错误来做一些有用的事情。

4

2 回答 2

4

使用 jQuery ajax,您可以使用 statusCode 属性将函数映射到 HTTP 响应状态代码。

$.ajax({
statusCode: {
  403: function() {
  alert("Forbidden");
  // or do something useful
  }
}
});
于 2012-04-20T10:52:35.440 回答
1

timeout在这种情况下可能会对您有所帮助。如果请求在 500 毫秒内超时,则没有响应(我也尝试获取响应状态,但没有运气)。

jsfiddle

            $.ajax({
                url: "https://s3-eu-west-1.amazonaws.com/fkcreate/Angles%2C%20Circles%20and%20Triangles..%20Instrumental.mp3",
                type: "get",
                dataType: 'jsonp',
                crossDomain : true,
                timeout : 500, // it is milliseconds
                complete : function(xhr, responseText, thrownError) {
                    if(xhr.status == "200") {
                       alert(responseText); // yes response came
                    }
                    else{
                       alert("No response"); // no response came
                    }
                }
           });​
于 2012-04-20T11:03:44.727 回答