2011-04-11 61 views
4

具有生成HTML这样的Rails应用程序:我如何调试Ajax请求

<a href="/ReadItLater/stock?qid=5618572&amp" data-remote="true">stock it</a> 

当我点击这个链接的浏览器,我可以得到关于Firebug的AJAX请求,控制台选项卡上的信息。我可以看到请求的响应:

$("#stock_5618528").hide(); 

enter image description here

但我怎么可以设置断点在此行和调试代码?

+0

我没有得到这...你可以请详细一点貌似我不理解的问题。看起来你有萤火虫,设定一个中断点后,你应该可以调试代码。 – 2011-04-11 08:35:07

+0

我添加了我的答案截图。我在控制台选项卡上收到javasript(答案),我不能在这里设置断点。 – demas 2011-04-11 08:41:57

+0

所以'$(“#stock_5618528”)。hide();'是服务器响应AJAX请求的输出吗? – lonesomeday 2011-04-11 08:42:40

回答

11

如果您更改您的响应以包含调试器关键字,它应该将其作为断点。 因此,在这种情况下,他们的回应是:

debugger; 
$("#stock_5618528").hide(); 

显然没有忘记删除,当它上线。 :D

+0

嗯..我把这一行添加到AJAX响应,但调试器没有启动。可能是我需要在操作系统注册调试器? – demas 2011-04-11 08:55:44

+0

@demas如果您正在运行安装了firebug的firefox,请确保启用了脚本选项卡,并且如果它遇到它,它应该在调试器关键字处中断。 – 2011-04-11 08:58:22

5

此外,因为您使用的是萤火虫。

尝试使用`console.log()'。它非常方便。

您可以在脚本执行后查看输出,而不是中断执行,然后处理ajax超时。

所有你可能需要做的是..

$.ajax({ 
    url: "...", 
    success: function(response){ 
    console.log(response); 
    } 
}); 
3

InfernalBadger回应与前端/脚本调试解决方案。如果你在(在Rails代码IE)服务器端感兴趣的调试,请执行下列操作

  1. 启动的WEBrick有:
rails server --debugger 
  1. 并添加调试在Rails代码/视图中,您希望它断点,并达到您将获得所有环境和上下文加载的控制台!
<% debugger %>