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

数据插入成功但jQuery AJAX success回调函数未触发,代码存在什么问题?

问题排查与解决方法

你遇到的AJAX请求成功但success回调不执行的问题,通常由以下几个常见原因导致:

  • 未指定dataType参数,jQuery自动解析响应失败
    你当前的代码没有声明响应的数据类型,jQuery会自动尝试识别响应内容格式,如果后端返回的内容不是合法JSON(比如存在PHP警告输出、多余空格/换行、非JSON字符串),哪怕请求状态码是200,也会判定为请求失败进入error回调,不会触发success。
  • jQuery对象调用原生reset()方法报错
    $('#editdonorForm')是jQuery包装后的对象,本身没有reset()方法,直接调用会抛出JS错误,导致success回调执行到这一行就直接中断,后续代码也不会运行。正确写法是取原生DOM节点调用:$('#editdonorForm')[0].reset()。
  • 依赖未初始化或未定义导致报错
    检查以下依赖是否正常:
    • swal(SweetAlert)是否已经正确引入到页面中,如果swal变量未定义,调用时会抛出错误中断回调
    • donorTable对应的DataTable实例是否已经正确初始化,未定义的情况下调用donorTable.ajax.reload()也会导致回调中断

调试建议

  1. 打开浏览器开发者工具的「控制台」标签,提交请求后查看是否有JS报错,可直接定位出错的代码行
  2. 切换到开发者工具的「网络」标签,找到对应的AJAX请求,查看响应内容是否为合法JSON格式,是否存在多余的输出内容
  3. 在success回调第一行添加console.log('success triggered', response),确认回调本身是否被触发

修正后的代码示例

$('#editdonorForm').on("submit", function (event) {
    event.preventDefault();
    $.ajax({
        type: "POST",
        url: "includes/goods_campaign/update_conn.php",
        data: new FormData(this),
        cache: false,
        contentType: false,
        processData: false,
        dataType: "json", // 新增:指定响应为JSON格式
        beforeSend: function () {
            $('#updateDonor').val("Updating");
        },
        success: function(response) {
            $('#editdonorForm')[0].reset(); // 修正:调用原生DOM的reset方法
            $('#update').modal('hide');
            swal({
                title: "Donor Updated",
                text: response.message,
                icon: "success",
                button: "Done"
            });
            if (typeof donorTable !== 'undefined') { // 新增:判断变量存在再调用
                donorTable.ajax.reload();
            }
        },
        error: function(xhr, error, status){
            console.log(xhr.responseText); // 建议改为打印详细错误信息,方便排查
            alert('请求出错:' + status);
        } 
    });
});

内容的提问来源于stack exchange,提问作者John Lloyd Daro

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.24 23:24:01