我的ajax请求遇到了速率限制的api。
$.ajax({
url:"https://api.themoviedb.org/xxx",
crossDomain: true,
dataType: "jsonp",
dataObj : index,
success: function (response, textStatus, xhr) {
console.log('success');
}
,error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log('error');
}
});
我想知道我什么时候达到速率限制。
但是对于在控制台中显示此内容的请求:
加载资源失败:服务器响应状态为429 (OK)
我没有看到"成功"或"错误"。就好像成功和错误都没有被执行。
是否有一种方法来弹出和警告?
我试过complete
,但它也不起作用。
谢谢
我找不到dataObj
的文档,但删除它似乎使查询正常运行。
如果你去掉它,error
回调被执行,你将能够在控制台中看到error
。
$.ajax({
url:"https://api.themoviedb.org/xxx",
crossDomain: true,
dataType: "jsonp",
success: function (response, textStatus, xhr) {
console.log('success');
}
,error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log('error');
}
});
编辑:实际上你想改变的是数据类型。除非你显式地传递一个回调,否则你应该告诉jQuery你得到的是json
而不是jsonp
。
$.ajax({
url:"https://api.themoviedb.org/xxx",
crossDomain: true,
dataType: "json",
dataObj: index,
success: function (response, textStatus, xhr) {
console.log('success');
}
,error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log('error');
}
});
尝试在设置中使用jQuery statusCode对象,如下所示:
$.ajax({
url:"https://api.themoviedb.org/xxx",
crossDomain: true,
dataType: "jsonp",
dataObj : index,
success: function (response, textStatus, xhr) {
console.log('success');
},
error: function(XMLHttpRequest, textStatus, errorThrown) {
console.log('error');
},
statusCode: {
429: function() {
alert( "Exceeded request limit." );
}
}
});