javascript - 捕获 AJAX 响应失败

标签 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”。我错过了什么?

最佳答案

responseText 是一个字符串。如果服务器以 json 格式响应,则需要先解析它,然后才能将其用作对象:

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

关于javascript - 捕获 AJAX 响应失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35951592/

相关文章:

javascript - 带有大列表的 Ajax 进度条

javascript - 表格排序 - 我想在对父行进行排序时将子行与父行一起移动

javascript - 为什么自动对焦在 ReactJS 和 antd 中不起作用?

javascript - 找到:selected element from list using JQuery

javascript - 在 App Browser 中处理 cordova 中的 Payumoney 响应

javascript - 在 <div contenteditable ="true"> 中换行让 jQuery 变得奇怪

Jquery高亮可编辑div中的单词

javascript - 向通过 AJAX 添加到 DOM 的对象添加事件监听器

javascript - @input 双向绑定(bind)不起作用

php - 如何使用 php 和 javascript 删除文本文件的内容