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

AJAX无法请求delete_data.php获取响应,点击确认删除无反应求助

AJAX请求delete_data.php无响应问题排查与解决

问题现象

点击「Delete Data」按钮可正常弹出删除确认模态框,但点击「Confirm Delete」按钮后无任何反应,AJAX未向delete_data.php发起请求,也未执行该文件内的逻辑。


现有代码

index.php

<!DOCTYPE html>
<html>
<head>
    <!-- Add Bootstrap CSS -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/4.5.2/css/bootstrap.min.css">

</head>
<body>
    <div class="container">
        <!-- Button to trigger the deletion and show the modal -->
        <button class="btn btn-danger" data-toggle="modal" data-target="#deleteModal">Delete Data</button>
    </div>

    <!-- Bootstrap Modal for the alert -->
    <div class="modal fade" id="deleteModal" tabindex="-1" role="dialog" aria-labelledby="deleteModalLabel" aria-hidden="true">
        <div class="modal-dialog" role="document">
            <div class="modal-content">
                <div class="modal-header">
                    <h5 class="modal-title" id="deleteModalLabel">Delete Confirmation</h5>
                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                        <span aria-hidden="true">&times;</span>
                    </button>
                </div>
                <div class="modal-body">
                    Are you sure you want to delete the data?
                </div>
                <div class="modal-footer">
                    <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
                    <button type="button" class="btn btn-danger" id="confirmDelete">Delete</button>
                </div>
            </div>
        </div>
    </div>

<!-- Bootstrap Success Modal -->
<div class="modal fade" id="successModal" tabindex="-1" role="dialog" aria-labelledby="successModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="successModalLabel">Success</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                Data has been successfully deleted.
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

<!-- Bootstrap Error Modal -->
<div class="modal fade" id="errorModal" tabindex="-1" role="dialog" aria-labelledby="errorModalLabel" aria-hidden="true">
    <div class="modal-dialog" role="document">
        <div class="modal-content">
            <div class="modal-header">
                <h5 class="modal-title" id="errorModalLabel">Error</h5>
                <button type="button" class="close" data-dismiss="modal" aria-label="Close">
                    <span aria-hidden="true">&times;</span>
                </button>
            </div>
            <div class="modal-body">
                An error occurred while deleting the data.
            </div>
            <div class="modal-footer">
                <button type="button" class="btn btn-secondary" data-dismiss="modal">Close</button>
            </div>
        </div>
    </div>
</div>

    <!-- Add Bootstrap JS and jQuery -->
    <script src="https://code.jquery.com/jquery-3.5.1.slim.min.js"></script>
    <script src="https://cdn.jsdelivr.net/npm/bootstrap@4.5.2/dist/js/bootstrap.bundle.min.js"></script>

    <!-- Your JavaScript code -->
    <script>
        $(document).ready(function() {
            $("#confirmDelete").click(function() {
                // Make an AJAX request to your server to delete data from the database
                // Upon successful deletion, show a success modal
                // Otherwise, show an error modal
                $.ajax({
                    type: "POST",
                    url: "delete_data.php", // Replace with your server-side script URL
                    success: function(response) {
                        if (response === "success") {
                            $('#deleteModal').modal('hide'); // Close the confirmation modal
                            $('#successModal').modal('show'); // Show a success modal
                        } else {
                            $('#deleteModal').modal('hide'); // Close the confirmation modal
                            $('#errorModal').modal('show'); // Show an error modal
                        }
                    }
                });
            });
        });
    </script>


</body>
</html>

delete_data.php

<?php
// Your database connection code here
//header('Content-Type: application/json');

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    // Perform the data deletion operation in your database
    // Replace this with your actual deletion code

    // Example deletion code
    $deleted = true; // Assume the data was successfully deleted

    if ($deleted) {
        echo "success";
    } else {
        echo "error";
    }
    
    /*if ($deleted) {
        echo json_encode(array("status" => "success"));
    } else {
        echo json_encode(array("status" => "error"));
    }*/

}
?>

修复方案

1. 替换jQuery版本

当前使用的jQuery Slim版(jquery-3.5.1.slim.min.js)移除了AJAX核心功能,导致$.ajax无法执行。替换为完整版本:

<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>

2. 添加AJAX错误回调

原代码仅处理请求成功场景,无法捕获请求失败的情况,添加error回调便于调试:

$.ajax({
    type: "POST",
    url: "delete_data.php",
    success: function(response) {
        if (response.trim() === "success") { // 用trim()过滤输出中的多余空格
            $('#deleteModal').modal('hide');
            $('#successModal').modal('show');
        } else {
            $('#deleteModal').modal('hide');
            $('#errorModal').modal('show');
        }
    },
    error: function(xhr, status, error) {
        console.log("请求错误详情:", status, error);
        $('#deleteModal').modal('hide');
        $('#errorModal').modal('show');
    }
});

3. 清理PHP输出

确保delete_data.php没有输出多余的空格或换行,避免干扰响应匹配:

<?php
ob_start(); // 开启输出缓冲

if ($_SERVER['REQUEST_METHOD'] === 'POST') {
    $deleted = true; // 实际业务中替换为真实删除逻辑
    $result = $deleted ? "success" : "error";
}

ob_end_clean(); // 清理缓冲内的无效输出
echo $result;
?>

4. 验证文件路径

确认delete_data.php与index.php在同一目录下,若路径不同,需调整AJAX的url参数为正确的相对或绝对路径。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.07 00:24:58