Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
JQuery IP信息-如果get请求超过允许的最大值_Jquery_Ajax - Fatal编程技术网

JQuery IP信息-如果get请求超过允许的最大值

JQuery IP信息-如果get请求超过允许的最大值,jquery,ajax,Jquery,Ajax,我正在使用IPInfo.io跟踪访问者的国家。 它允许我每天最多做1000个请求(免费) 我想让它检查国家是否为“BR”。 如果是,“做点什么”。 如果不是,或者如果超过了每日请求的最大数量,“做点别的” 现在,当超过对IpInfo的请求查询时,else子句在这里不起作用 在这种情况下,我会得到错误:429(请求太多) 我试过: $.get("http://ipinfo.io", function (response) { var pais = (response.country);

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

我想让它检查国家是否为“BR”。 如果是,“做点什么”。 如果不是,或者如果超过了每日请求的最大数量,“做点别的”

现在,当超过对IpInfo的请求查询时,
else
子句在这里不起作用

在这种情况下,我会得到错误:
429(请求太多)

我试过:

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

我如何解决这个问题


注意:我不想破坏此服务的TOS,而是在达到每日限制时执行默认操作。

尝试以下方式使用完整的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”代码以外的代码。

429(请求太多)说明了一切,您已经超过了每天的请求数。我已经尝试过你的函数,它可以正常工作,我是否可以说明在这种情况下该怎么做?jquery似乎不支持这种HTTP状态,或者它可能是一个bug。fail不适用于跨域jsonp请求。错误也没有:回调。如果您使用您的Web服务器来使用它,您可以缓存结果,以使这1000个请求持续更长时间,前提是您没有违反任何ToS协议。甚至可以仅用js检索使用脚本标记加载的脚本的状态码吗?谢谢,但我得到了相同的错误(429)带有警报的函数不是triggeredSorry,没有注意到您正在使用JSONP。编辑我的答案以解决您的问题。ipinfo.io的API文档展示了如何使用JSON请求,这样可以消除JSONP的限制。
$.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" );
        }
    }
});