【问题标题】:jQuery/Ajax/javascript in FireFox Error when using $.post/$.get使用 $.post/$.get 时 FireFox 中的 jQuery/Ajax/javascript 错误
【发布时间】:2010-05-11 17:00:04
【问题描述】:

未捕获的异常:[异常...“组件返回失败代码:0x80004005(NS_ERROR_FAILURE)”nsresult:“0x80004005(NS_ERROR_FAILURE)”位置:“JS框架:::http://localhost/scripts/jQuery.js::匿名::第808行”数据:没有]

第 0 行

是我在启动 firebug 时遇到的错误。这只发生在 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 或插入幻像数据也不起作用。还是有更优雅的方法来做到这一点?

【问题讨论】:

    标签: jquery ajax


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      如果我收到这样的一般错误消息,我通常会尝试通过这种方式找到它。通常问题出在我最后接触的东西上。

      【讨论】:

        【解决方案3】:

        解决了。

        我不知道为什么会这样。错误不在于 $.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(..)”更改为其他内容后它起作用了,例如。 "$("body").animate(..)"。有点撞到了为什么 Firefox 将 $(this).animate 读取为这样的错误。 #Logout 是一个锚 btw

        例如

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2014-09-28
          • 1970-01-01
          • 2010-11-12
          • 1970-01-01
          • 2012-05-29
          • 1970-01-01
          • 1970-01-01
          • 2012-05-18
          相关资源
          最近更新 更多