You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在jQuery/JavaScript中读取Ajax调用成功后的响应?

如何在jQuery/JavaScript中读取Ajax调用成功后的响应?

先看一下你贴的代码,这里有两个小问题需要修正,之后就能顺利读取响应数据了:

首先,修正你的Ajax请求结构

你把dataType参数放错位置了——它应该是$.post的第四个参数,而不是放在请求的data对象里。另外,如果指定了dataType: 'json',jQuery会自动帮你把后端返回的JSON字符串解析成JavaScript对象,不需要再手动调用JSON.parse(data)。

修正后的代码示例

$( document ).ready(function() {
  $('tr').on('blur', 'td[contenteditable]', function() {
    var that = this;
    // $.post的参数顺序:url, 请求数据, 成功回调, 返回数据类型
    $.post(
      "ajax/modQtyModels",
      { 
        modelId: $(this).closest('tr').children('td.idmodel').text(),
        qty: $(this).closest('tr').children('td.editQty').text(),
        ajax: true
      },
      function(data) {
        // 这里的data已经是解析好的JSON对象了
        if (data.success === true) { // 建议后端返回布尔值true,而不是字符串"true"
          // 这里写你的成功逻辑,比如给行加个成功样式
          $(that).closest('tr').addClass('updated-success');
          console.log("更新成功,返回数据:", data);
        } else {
          // 处理失败情况,比如提示错误信息
          console.log("更新失败:", data.message);
          alert(data.message || "操作失败");
        }
      },
      'json' // 告诉jQuery返回的是JSON格式
    );
  });
});

更清晰的写法:用$.ajax配置对象

如果觉得$.post的参数顺序容易搞混,推荐用$.ajax的完整配置写法,可读性更强,也更容易维护:

$( document ).ready(function() {
  $('tr').on('blur', 'td[contenteditable]', function() {
    var that = this;
    $.ajax({
      url: "ajax/modQtyModels",
      type: "POST",
      data: {
        modelId: $(this).closest('tr').children('td.idmodel').text(),
        qty: $(this).closest('tr').children('td.editQty').text(),
        ajax: true
      },
      dataType: "json", // 明确指定返回类型为JSON
      success: function(data) {
        // 直接访问响应对象的属性
        if (data.success) {
          $(that).closest('tr').find('.status').text("已更新");
        } else {
          alert("更新失败:" + data.error);
        }
      },
      // 别忘了处理请求失败的情况(比如网络错误、后端报错)
      error: function(xhr, status, err) {
        console.error("请求出错:", err);
        alert("请求失败,请稍后重试");
      }
    });
  });
});

关键要点总结

  • 不要手动解析JSON:只要指定了dataType: 'json',jQuery会自动完成解析,直接用data.属性名访问即可。
  • 参数位置要正确:$.post的参数顺序是url, data, successCallback, dataType,别把配置项混在请求数据里。
  • 处理失败场景:除了success回调,记得加error回调处理网络错误或者后端返回的非200状态码,提升用户体验。

内容的提问来源于stack exchange,提问作者ffuentes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:41:06