JQuery IP Info - 如果获取请求的条件超过允许的最大值

时间:2014-09-03 15:03:48

标签: jquery ajax

我正在使用IPInfo.io来跟踪访问者的国家/地区。 它允许我每天最多执行1000个请求(免费)。

我想要检查一下这个国家是否是' BR'。 如果是,"做某事"。 如果不是,或者已经超过了每日请求的最大数量,那么"做其他事情"。

$.get("http://ipinfo.io", function (response) {
   var pais = (response.country);

   if(pais=='BR'){
    //do something//        
   } else {
   // do something else
   };
}, "jsonp");

现在,当超出对IpInfo的请求查询时,else子句在此处不起作用。

在这种情况下,我收到错误:429 (Too Many Requests)

我试过了:

$.get("http://ipinfo.io", function (response) {
  var pais = (response.country);
    if(pais=='BR'){
    //do something //
    };
}, "jsonp")
    .fail(function(){
    //do something else//
});

但结果是一样的。

我该如何解决这个问题?

注意:我的想法是打破此服务的服务条款,但是在达到每日限额时执行默认操作。

1 个答案:

答案 0 :(得分:1)

尝试以下面的方式使用完整的jQuery.ajax()调用...

$.ajax({
    url: "http://ipinfo.io/json",
    success: function(response) {
        var pais = (response.country);
        if(pais=='BR') {
            //do something //
        }
    },
    dataType: 'json',
    statusCode: {
        429: function() {
            alert( "Number of tries exceeded" );
        }
    }
});

这将使您能够检查HTTP状态代码。您可以扩展它以检查不仅仅是" 429"你提到的代码,如果需要的话。