jQuery.getJSON()如何获取请求的状态

时间:2012-12-21 12:03:44

标签: javascript jquery

我正在使用jQuery JavaScript库 v1.4.2

我正在使用此代码

var urlToGetToken = 'http://test.com';
        $.getJSON(urlToGetToken, function (data) {
            document.getElementById("demo3").innerHTML = data.access_token;
        }).success(function () {
            alert("second success");
        })
            .error(function () {
            alert("error");
        })
            .complete(function () {
            alert("complete");
        });

我想在demo3中打印状态代码和错误消息,以防Ajax请求失败。

我厌倦了使用.error()......但没有成功。

任何想法?

3 个答案:

答案 0 :(得分:4)

在Jquery 1.5中引入了Promises / Deferreds - 我不确定您在1.4.2中使用的语法

我们无法将'失败'回复传递给$ .getJson - 您可以使用$ .ajax - 这绝对可以使用

如果您想点击失败事件

$.ajax({
  url: url,
  dataType: 'json',
  data: data,
  success: successCallback,
  error : failureCallback
}); 

var successCallback = function(data){
$("#demo3").innerHTML = data.access_token;
};

var failureCallback  = function(jqXHR, textStatus, errorThrown){
$("#demo3").innerHTML = "Your error message"; 
};

答案 1 :(得分:2)

由于$.getJSON是查找错误消息的ajax请求,请使用:

$(document).ajaxError(function(event, msg, settings){
  alert(msg);
});

答案 2 :(得分:0)

来自文档:

jQuery.getJSON( url [, data] [, success(data, textStatus, jqXHR)] )

所以:

$.getJSON(urlToGetToken, function (data) {
    document.getElementById("demo3").innerHTML = textStatus;
}).success(function () {

将为您提供结果。