捕获AJAX响应失败

时间:2016-03-11 23:14:48

标签: javascript jquery ajax

我正在尝试获取AJAX响应的返回值,并让它完成所有工作直到最后一步,我不确定我做错了什么。我可以捕获结果响应,但无法解析它。

AJAX致电:

//Create a response var
var response = '';

//Set up the AJAX Call
function callAjax(Url, data, callBack){

$.ajax({

    url: Url,
    type: 'POST',
    timeout: 10000,
    data: data,
    success: function(data,textStatus,xhr){
        return callBack(xhr);
    },
    error: function(xhr, status, error){

    },
    complete: function (data) {

    }
  });
}

结果响应如下所示:

{"id":821,"status":true,"server":servername}

我打电话并尝试使用以下

捕获响应
callAjax(<my url>, data, function(myRtrn){

    //This shows the proper response if I alert() it
    var ajResponse = myRtrn.responseText;

    //This Does not work 
    alert(ajResponse.id);

    //This does not work
    response = ajResponse;

})

所以我可以在我的ajResponse变量中获得正确的响应,但不能在方法之外得到它。

我在StackOverflow上看过其他例子,它似乎对他们有效。基本上,我想要响应的“id”。我错过了什么?

1 个答案:

答案 0 :(得分:2)

responseText是一个字符串。如果服务器以json格式响应,则在将其用作对象之前,您需要解析它:

var ajResponse = JSON.parse(myRtrn.responseText);