FireFox中的jQuery / Ajax / javascript使用$ .post / $。时出错

时间:2009-10-12 02:45:00

标签: jquery ajax

未捕获的异常:[Exception ...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)”nsresult:“0x80004005(NS_ERROR_FAILURE)”location:“JS frame :: http://localhost/scripts/jQuery.js :: anonymous :: line 808”数据:没有]

第0行

是我拿出萤火虫时得到的错误。这只发生在firefox(可能还有其他浏览器)中,但代码在IE8中运行良好。

我在jquery中有这样的代码:

$("#Logout").live("click", function (e) {
  e.preventDefault(e);
  $.post("/logout.php", {}, function () {
    //--a bunch of animations--//
    window.location = "/login.php";
  }
});

我不知道什么是错的,因为即使错误信息根本没有帮助......

在logout.php中:

<?php
  session_start();
  session_destroy();
?>

如果我使用GET或插入幻像数据也不行。或者有更优雅的方式来做到这一点?

3 个答案:

答案 0 :(得分:0)

调试此类错误的最简单方法是在代码中设置断点,然后逐步执行该错误直到出现错误,或者注释掉您认为可能导致错误的部分代码。首先注释掉整个事件回调函数,如果错误消失,请取消注释不同的行。当你找到导致它的线路时,你也可能会发现它导致它的原因。如果你不知道,请问这里。

如果没有您的整个代码,我们很难告诉您导致问题的原因。

答案 1 :(得分:0)

解码这些类型的错误消息真的很难。我建议做的是因为它听起来你没有太多的代码,删除一些这些行,看看它是否修复了错误。只是不断删除/替换代码,直到错误消失,这就是问题所在。

如果我收到类似的常规错误消息,那么我通常会尝试找到它。通常问题在于我触及的最后一件事。

答案 2 :(得分:0)

解决。

我不知道为什么会这样。错误不在$ .get中,而在于其中一个动画。

因为我在实际注销之前有动画,所以我需要延迟注销,因此:

$("#Logout").live("click", function(e) {
  e.preventDefault();
  $.get("/logout.php", {}, function() {
    //--bunch of animations--//
    $(this).animate({delay:1}, DURATION, function() {
       window.location = '/login.php';
    });
  });
});

在我将“$(this).animate(..)”更改为其他内容之后,它工作了。 “$(” 身体 “)。动画(..)”。有点碰到为什么firefox读取$(this).anan会出现类似的错误。 #Logout是一个锚btw

例如

<a id='Logout' href='#'>Logout</a>