我有一个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()
。)
答案 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
页面的请求。