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

Laravel 8中Sweetalert删除确认按钮点击无响应无控制台报错问题求助

Sweetalert删除确认弹窗点击无响应问题解决方案

问题原因

  • 控制器代码中存在dd($id)调试语句,执行后会直接终止程序,后续删除逻辑和返回值都不会执行
  • 控制器默认返回重定向响应,但是AJAX请求指定了dataType: 'JSON',无法解析非JSON格式的返回值,导致没有后续反馈
  • 缺少AJAX错误捕获回调,请求异常时不会有报错提示,无法定位问题
  • 部分版本SweetAlert2的确认状态判断规则不同,原有e.value的判断逻辑可能不生效

解决步骤

1. 调整控制器代码

移除调试语句,返回符合要求的JSON响应:

public function deletepost($id)
{
    try {
        DB::table('posters')->where('id', $id)->delete();
        return response()->json([
            'success' => true,
            'message' => '帖子删除成功'
        ]);
    } catch (\Exception $e) {
        return response()->json([
            'success' => false,
            'message' => '删除失败:' . $e->getMessage()
        ]);
    }
}

2. 检查页面基础配置

确认页面<head>标签内存在CSRF token声明,没有则添加:

<meta name="csrf-token" content="{{ csrf_token() }}">

同时确认jQuery、SweetAlert2依赖库已正确引入,无加载报错。

3. 优化前端JS逻辑

调整SweetAlert确认判断逻辑,新增AJAX错误回调:

function deleteConfirmation(id) {
  swal({
        title: "Delete?",
        text: "Are you sure you want to delete this?",
        type: "warning",
        showCancelButton: true,
        confirmButtonText: "Yes, delete it!",
        cancelButtonText: "No, cancel!",
        reverseButtons: true
    }).then(function (e) {
        // 适配不同版本SweetAlert的确认状态判断
        if (e.value || e.isConfirmed) {
            var CSRF_TOKEN = $('meta[name="csrf-token"]').attr('content');
            $.ajax({
                type: 'DELETE',
                url: "{{ url('delete-post') }}" + '/' + id,
                data: {_token: CSRF_TOKEN},
                dataType: 'JSON',
                success: function (results) {
                    if (results.success === true) {
                        swal("Done!", results.message, "success");
                        // 可选:删除成功后刷新页面或者移除对应DOM元素
                        // location.reload();
                    } else {
                        swal("Error!", results.message, "error");
                    }
                },
                // 新增错误回调捕获请求异常
                error: function(xhr) {
                    swal("Error!", "请求出错:" + xhr.statusText, "error");
                }
            });
        }
    })
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.19 03:15:03