如何找到触发Ajax请求的JavaScript代码?在Firebug的控制台中,我们可以识别文件和行号,但是如果我们使用jQuery的
$.ajax
或$.post
或类似的函数,则它只会在Firebug的控制台中记录jQuery库文件。有没有办法获取jQuery函数的实际触发点?$.ajax
或$.post
或类似的函数,则它只会在Firebug的控制台中记录jQuery库文件。有没有办法获取jQuery函数的实际触发点?在你的DevTool中使用Chrome
, 打开 Sources
选项卡,右侧将会看到XHR / fetch断点
, 如果选中Any XHR
,则您的脚本会在每个使用XMLHttpRequest
的请求处暂停(因此不使用jsonp
进行请求的每个请求都会暂停)。
如果Any XHR
选项不可用(仅列出No Breakpoints
),那么您必须单击+
,将 Break when URL contains:
字段留空并按回车键。这将创建Any XHR
选项。(感谢Yasmin French提供的信息)。
使用Call Stack
(也在右侧),您将看到请求的来源。
但是,正如我所提到的,如果要跟踪jsonp
请求,则需要使用未压缩版本的jQuery
(或包含压缩版本的sourcemap),并在其源代码中设置断点正确的部分。要找到此部分,可以执行以下步骤:
jsonp
请求,并在此位置设置断点。Step into
,现在您应该在jQuery代码中。如果您现在在那里设置断点,Chrome将停止每个jsonp
请求。注意:有时Chrome(可能仅限于beta或dev版本)倾向于在重新加载时丢失断点,因此您需要检查它们在重新加载时是否仍然存在。
Sources
,如果你勾选了Any XHR
,你的脚本将会在每个使用XMLHttpRequest
的请求处暂停(所以任何不使用jsonp
进行请求的请求都会被暂停)。通过Call Stack
(也在右侧),你可以看到请求的来源。 - t.niese