我正在尝试获取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”。我错过了什么?
答案 0 :(得分:2)
responseText是一个字符串。如果服务器以json格式响应,则在将其用作对象之前,您需要解析它:
var ajResponse = JSON.parse(myRtrn.responseText);