如何调试 jquery AJAX 调用?

2022-08-30 11:11:16

我一直在努力让AJAX与Jquery一起工作。到目前为止,我最大的问题是我真的不知道如何弄清楚我在哪里犯了错误。我真的没有一个很好的方法来调试AJAX调用。

我正在尝试设置一个管理页面,其中我想要执行的功能之一是更改 SQL 数据库中的权限集。我知道.click函数正在被触发,所以我缩小了它的范围,但我不确定从AJAX调用到SQL查询的链中的哪个位置出错了。

我的.js码:

$('#ChangePermission').click(function(){
    $.ajax({
        url: 'change_permission.php',
        type: 'POST',
        data: {
        'user': document.GetElementById("user").value,
        'perm': document.GetElementById("perm").value
        }
    })
})

我的.php处理程序:

<?php  
require_once(functions.php);

echo $_POST["user"];

try{
    $DBH = mysql_start();

    $STH = $DBH->prepare("INSERT INTO people ( username, permissions ) values (?, ?)");

    $STH->bindParam(1, $_POST["user"]);
    $STH->bindParam(2, $_POST["perm"]);

    $STH->execute();
}
catch(PDOException $e){
    echo $e->getMessage;
}?>

其中,mysql_start为我在其他 SQL 调用中成功使用的 PDO 函数设置的。

我已经研究和查找教程几天了,我无法为我的生活找出问题所在。是否有工具可用于找出错误发生的位置?我显然对这个特定问题的答案感兴趣,但我认为我在这里更大的问题是我不知道从哪里开始调试。感谢您的帮助!


答案 1

通过添加成功和错误回调,使 JQuery 调用更加可靠,如下所示:

 $('#ChangePermission').click(function() {
     $.ajax({
         url: 'change_permission.php',
         type: 'POST',
         data: {
             'user': document.GetElementById("user").value,
             'perm': document.GetElementById("perm").value
         },
         success: function(result) { //we got the response
             alert('Successfully called');
         },
         error: function(jqxhr, status, exception) {
             alert('Exception:', exception);
         }
     })
 })

答案 2

使用几乎任何现代浏览器,您都需要学习“网络”选项卡。请参阅这篇关于如何调试 AJAX 调用的 SO 文章。