【发布时间】:2011-08-30 12:26:44
【问题描述】:
我在使用 jQuery ajax 成功处理程序时遇到了困难。成功处理程序中发生的任何 javascript 运行时错误似乎都不会被报告(Firefox 错误控制台中不会出现错误)。并且尝试在没有错误通知的情况下进行调试让我发疯。有人可以看看下面我的代码的简化版本,如果我正在做一些可能导致问题的愚蠢行为,请告诉我。
如果没有,如果有人可以在 Firefox 中对此进行测试并确认(或不确认)没有出现错误消息,而且不仅仅是我发疯了(或者我的 Firefox 安装有问题或其他问题)。我也把代码放到了网上——所以你可以点击下面来测试它....
http://www.alisonstrachan.co.uk/tests/ajax2/ajax_test2.html
ajax_test2.html
<html>
<head>
<script type="text/javascript" src="http://code.jquery.com/jquery-1.6.2.js"></script>
<script type="text/javascript">
$(document).ready(function(){
//alert(missingVariable1); //uncomment -> get error reported (as expected)
$.ajax({
url: "ajax_test2_process.php",
data: {send: "hello"},
async: false,
success: function(data){
$("#results").append(data);
alert(missingVariable2); //no error reported (there should be surely?)
$("#results").append(" finished ");
}
});
});
</script>
</head>
<body>
<div id="results"></div>
</body>
</html>
ajax_test2_process.php
<?php
echo "received: " . $_REQUEST['send'];
?>
【问题讨论】:
-
你重定向到的页面显示
received:hello这不是预期的结果 -
@3nigma 感谢您对此进行测试。是的,这是预期的结果。但我需要知道的是你在 Firefox 错误控制台中得到了什么。控制台中是否记录了故意的“alert()”错误?
-
可能ajax请求失败,因此从不调用success,尝试用complete来改变success,使用FIREBUG
-
@3nigma:它还应该附加“完成”,这不是由于警报[静默]失败。
-
谢谢@max4ever。 ajax 成功处理程序被调用,因为我在页面上看到“received: hello”。我也尝试过 Firebug,它也没有在其控制台选项卡中报告错误。
标签: jquery ajax firefox handler