我正在尝试获取 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”。我错过了什么?
最佳答案
responseText 是一个字符串。如果服务器以 json 格式响应,则需要先解析它,然后才能将其用作对象:
var ajResponse = JSON.parse(myRtrn.responseText);
关于javascript - 捕获 AJAX 响应失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951592/