【问题标题】:Debugging ajax calls on CakePHP 2 with DebugKit, Firebug et al使用 DebugKit、Firebug 等在 CakePHP 2 上调试 ajax 调用
【发布时间】:2012-12-17 06:44:56
【问题描述】:

我有一个安装了 DebugKit 的 CakePHP 2 应用程序。它工作正常,我在“时间”工具栏中为我加载的每个页面获取内存使用情况和处理时间。

我还希望能够在页面加载后获取 ajax 请求的内存使用情况和处理时间。我知道我可以使用 DebugKit 工具栏中的“历史记录”按钮访问以前的 ajax 请求,但是当我想单击页面、触发 ajax 请求并为它们获取即时调试信息时,这并没有真正的帮助。

所以,我进行了一些搜索,发现我可以在 Firefox 中使用 Firebug + FirePHP 以及我的应用程序中的 FirePHP 和 FireCake 库,并根据每个 ajax 请求获取 DebugKit 的所有统计信息。这听起来很完美,正是我想要做的。

不幸的是,我似乎无法让它工作。我只能在http://someguyjeremy.com/blog/using-firephp-to-debug-your-cakephp-app找到一个关于这件事的教程

我已经完成了教程中提到的所有事情,Cake 完全没有给我任何错误。但是,除非我遗漏了什么,否则我看不到调试信息在 Firebug 中的显示位置,如果它确实首先被馈送到 Firebug。

我的配置:

蛋糕版: 2.2.4

Firefox 版本: 17.0.1

Firebug 版本: 尝试使用 1.11.1 和 1.9.0

FirePHP 版本: 0.7.1

DebugKit 版本: 2.2.0(最新的主分支)

更新

它似乎非常适合不以 .json 结尾的 Ajax 请求,因此不会被我在 routes.php 中的 Router::parseExtensions('json'); 接收。

我取出 Router::parseExtensions('json'); 并将我的 Ajax 请求更改为直接执行我的 filter 操作而不是调用它 filter.json 并且 Cake 提供所有 FireBug 标头。不幸的是,我不能这样使用它,因为 JQuery 需要内容类型为 application.json。

【问题讨论】:

  • 您在萤火虫响应中看到 Firephp 标头吗?至少使用 Firebug,您可以检查标题。寻找大量 X-Wf-X-X-X-XX 标头。
  • 还要确保Net 标签已启用。
  • @jeremyharris 我不知道昨天的问题是什么。当我点击您的网站时,它被重定向到一个奇怪的 url(如果我没记错的话,实际域名中的数字是 404)随后超时。无论如何,它现在工作正常,所以我用正确的 URL 更新了帖子。
  • @jeremyharris 我已经用新的细节更新了帖子。我发现这个问题只有在我请求通过outer::parseExtensions('json'); 路由的ajax 操作时才会发生——我认为这与cakephp.lighthouseapp.com/projects/42880/tickets/… 报告的错误相同,但我不确定。你怎么看?

标签: cakephp firebug firephp


【解决方案1】:

看起来这可能是一个记录在案的错误:

http://cakephp.lighthouseapp.com/projects/42880/tickets/107-firephp-messages-are-not-sent-in-response-if-using-jsonxmlview-with-serialization

我的用例并不完全相同,但输出 json 会阻止 FirePHP 标头出现。如果我关闭 json 的解析扩展指令,FirePHP 标头会按原样显示。

【讨论】:

    猜你喜欢
    • 2014-02-12
    • 2010-10-11
    • 1970-01-01
    • 2011-10-04
    • 1970-01-01
    • 1970-01-01
    • 2011-03-21
    • 2013-01-10
    • 2011-06-09
    相关资源
    最近更新 更多