如何找到触发 Ajax 请求的 Javascript 代码?在 Firebug 的控制台中,我们能够识别文件和行号,但如果我们使用 $.ajax
或 $.post
或 jQuery 的一些类似功能,它将仅在 Firebug 的控制台中记录 jQuery 库文件。有什么办法可以得到jQuery函数的实际触发点吗?
最佳答案
在 DevTool 中使用 Chrome
你有 Sources
。
如果你打开它,你会在右侧看到 XHR/fetch Breakpoints
,如果你选中 Any XHR
,你的脚本将在每个使用 的请求时暂停XMLHttpRequest
(所以请求不使用 jsonp
请求)。
如果 Any XHR
选项不可用(仅列出 No Breakpoints
),则必须单击 +
离开 Break when URL contains:
字段空白并按回车键。这将创建 Any XHR
选项。 (感谢 Yasmin French 提供此信息)
通过 Call Stack
(也在右侧),您将看到请求的来源。
但正如我所提到的,这不会中断 jsonp
请求,如果你想跟踪这些请求,你需要使用 jQuery
的非缩小版本(或包括源映射缩小版本)并在其源代码的正确部分设置断点。要找到此部分,您可以使用以下步骤:
- 在你的代码中创建一个
jsonp
请求,并在这个地方设置一个断点。 - 调用这部分代码以便切换到调试器。
- 使用
Step into
,现在您应该在jQuery 代码中。如果您现在在此处放置一个断点,Chrome 将在每次jsonp
请求时停止。
注意:有时 Chrome(可能仅在 beta 或 dev 版本中)在重新加载时往往会丢失断点,因此您需要检查它们在重新加载时是否仍然存在。
关于javascript - 如何找出哪个 Javascript 导致 jQuery Ajax 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17208268/