-1

我的 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了,但它也不起作用。

谢谢

4

2 回答 2

2

我找不到文档,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');
    }
});
于 2015-07-21T11:11:48.390 回答
0

尝试在设置中使用 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." );
      }
    }
});
于 2015-07-21T11:14:53.867 回答