当前位置:  开发笔记 > 编程语言 > 正文

使用Firebug调试Ajax代码

如何解决《使用Firebug调试Ajax代码》经验,为你挑选了2个好方法。

我在调试Ajax调用中返回的代码时遇到了一些问题 - 特别是在json中返回的函数(错误不会在Firefox中被捕获) - 直到我开始在Internet Explorer中调试这些问题(我认为它是一个与firefox相关的问题,因为Venkman也没有检测到这些错误.你知道从Ajax调用中调试json返回的代码的任何方法吗?


编辑03/04/2009 15:05


感谢所有人的回复,但我认为我没有很好地解释自己.我已经足够了解Firebug进行基本调试,但是当我在Ajax调用中获取一些有问题的代码时,我的问题就出现了.假设我们有以下HTML文件(您需要在同一文件夹中使用原型才能使其正常工作):











然后,data.json文件的内容是这样的:

{'func':function(){console.log('loaded...');alert('hey');}}

如果您在浏览器中加载页面并单击"测试"按钮(一切顺利),您将在控制台中获得一些内容,并在警告框中显示"嘿".现在将data.json文件更改为:

{'func':function(){console.log('loaded...');alerts('hey');}}

...再次单击"测试"按钮(无需重新加载页面;-)您获得控制台线,但没有警报框......并且没有错误!这是我试图调试的那种错误.



1> Bryan A..:

尝试单击"控制台"面板(它是一个选项卡)并启用它.您会发现任何HTTP请求都将与它们包含的任何信息一起被捕获.我使用它来查看存储在请求中的任何JSON以及任何错误(500/404/etc).

另请注意,您必须基于每个域启用控制台面板.通常有三个子标题:标题,帖子和响应.我在调试AJAX时经常使用post/response选项卡.


+1我只是提到网络和脚本选项卡一直很好,为我调试ajax

2> Brian Clozel..:

您可能希望使用"网络"选项卡并仅过滤XMLHttpRequests(XHR)的请求.

其他提示:

不要犹豫,在代码中或直接在控制台面板中使用console.dir(yourObject).这将为您提供对象的完整状态和属性.

检查您的请求/响应HTTP标头; 有时它只是编码问题.

如果您不知道哪个事件/用户操作触发了此XHR调用,则可以在AJAX调用之前添加console.trace().这样你就可以获得完整的调用堆栈.

编辑:

代码在另一个上下文中执行

我提出的唯一方法是用(丑陋的)try/catch包围你的代码.我想这是因为代码是在另一个javascript上下文中执行的


此代码提供了详细的错误消息:

ReferenceError: alerts is not defined

我真的怀疑改变执行上下文会解决问题.我不知道如何使用原型,但使用jquery,它可以很容易地完成:

$.ajax({
  url: "test.html",
  context: document.body,
  success: function(){
    $(this).addClass("done");
  }
});

推荐阅读
mobiledu2402852413
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有