使用jquery获取url状态

时间:2012-04-20 10:46:53

标签: jquery url status

我正在尝试获取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
      }
    }
});

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

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

2 个答案:

答案 0 :(得分:4)

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

$.ajax({
statusCode: {
  403: function() {
  alert("Forbidden");
  // or do something useful
  }
}
});

答案 1 :(得分: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
                    }
                }
           });​