在不成功的jquery ajax请求中做一些事情

时间:2015-07-21 10:55:19

标签: javascript jquery ajax themoviedb-api

我的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(确定)

我没有看到'成功'或'错误'。 这就像成功和错误没有被执行。

有没有办法弹出并提醒,例如?

我尝试了complete,但它也无效。

谢谢

2 个答案:

答案 0 :(得分: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');
    }
});

答案 1 :(得分:0)

尝试在设置中使用jQuery statusCode对象,如下所示:

var socket = io.connect();

socket.on('return message', function(data){
  //Not working
  console.log(data);
});