如何在AJAX中检测到错误?

时间:2011-11-25 15:19:49

标签: php javascript jquery ajax

我有一个jQuery函数,它使用AJAX发送必要的信息来正确运行相应的脚本:

$("#changeUseridForm").submit(function(){
    $.ajax({
        type: "GET",
        url: "API/root/users/changeUsername.php",
        data: {
        newUsername: ("#newUserid", this).val(),
        password: ("#retypePass", this).val(),
        xml: 1,
        },
        dataType: 'xml',
        success: function(xml){
            if($(xml).find("success").length > 0){
                alert("Username changed successfully!");

                $("#changeUserid").hide();
                $("#BackToMainMenu").hide();
                $("#MainPage").show();
                $("#AddLinkButton").show();
                $("#ChangeUserOptions").show();
                $("#ChangeUserDataButton").show();
                $("#ShowPosts").show();
            }
            else if($(xml).find("error").length > 0){
                alert("You have to fill all the fields!");
            }
        }
    });

    return false;
});

我有几个像这样的功能,运行完美;这个不是。我验证了所有变量和脚本。它们拼写正确。它没有到达引用的脚本。我认为AJAX代码可能有问题,但我无法检测到哪个错误。我试图在我的浏览器的网络检查器上搜索它,但我无法弄清楚,因为页面正在重新加载,因为某些原因我不知道为什么。 (因为此函数在任何地方都没有window.location.reload()。)

3 个答案:

答案 0 :(得分:1)

尝试设置代理或使用firefox插件来捕获get请求(你也可以使用wireshark)

然后您可以查看是否有对此页面API / root / users / changeUsername.php的请求 此页面API / root / users / changeUsername.php可能会返回302重定向,

检查GET请求的http响应并发布

答案 1 :(得分:1)

查看docs on .ajax(),您可以指定错误处理函数,以获取有关错误的详细信息。那将是第一步。

您还可以使用Firebug's or Chrome's "Net" tab来监控请求,并查看返回的内容。

答案 2 :(得分:0)

您可以使用firebug检测(调试)大量错误。在这种情况下,您可以使用net标签并选中persists以查看导致reloaded页面的请求。

enter image description here