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