如何找出哪个Javascript导致jQuery Ajax请求?
如何找到触发Ajax请求的Javascript代码?在Firebug的控制台中,我们能够识别文件和行号,但是如果我们使用如何找出哪个Javascript导致jQuery Ajax请求?,javascript,jquery,Javascript,Jquery,如何找到触发Ajax请求的Javascript代码?在Firebug的控制台中,我们能够识别文件和行号,但是如果我们使用$.ajax或$.post或jQuery的类似功能,它将只在Firebug的控制台中记录jQuery库文件。有什么方法可以获得jQuery函数的实际触发点吗?在chrome和firefox/firebug中,您可以在ajax调用的beforeSend处理程序上使用console.trace(),或者在ajax调用的beforeSend处理程序上使用,以查看是谁调用了它。在您拥有
$.ajax
或$.post
或jQuery的类似功能,它将只在Firebug的控制台中记录jQuery库文件。有什么方法可以获得jQuery函数的实际触发点吗?在chrome和firefox/firebug中,您可以在ajax调用的beforeSend处理程序上使用console.trace(),或者在ajax调用的beforeSend处理程序上使用,以查看是谁调用了它。在您拥有的DevToolSources
中使用chrome
如果您打开它,您将在右侧看到XHR/fetch断点
,如果您选中Any XHR
,您的脚本将在每个使用XMLHttpRequest
的请求时暂停(因此任何不使用jsonp
的请求都会暂停)
如果任何XHR
选项不可用(仅列出无断点
),则当URL包含时,您必须单击+
将中断保留为空,然后单击enter。这将创建任意XHR
选项。(感谢您提供此信息)
使用调用堆栈
(也在右侧),您将看到请求的来源
但正如我所提到的,这不会中断jsonp
请求。如果您想跟踪这些请求,您需要使用jQuery
的未缩小版本(或包括缩小版本的源映射),并在其源代码的正确部分设置断点。要查找此零件,可以使用以下步骤:
在代码中创建一个jsonp
请求,并在此处设置断点
调用这部分代码,以便切换到调试器
使用步骤进入
,现在您应该在jQuery代码中了。如果您现在在那里放置一个断点,Chrome将停止处理每个jsonp
请求
注意:有时Chrome(可能仅在beta或dev版本中)在重新加载时会丢失断点,因此您需要检查它们在重新加载时是否仍然存在。这可能在早期Chrome版本中不存在,但是56.0.2924.87版有一个“启动器”列,告诉html/js文件以及该文件中发起请求的确切行
此请求可以是XHR、jpg的http请求、css或任何其他请求
非常圆滑,有助于跟踪请求
下面是如何使用它
按“F12”打开开发者控制台
在每个请求中查找“Initiator”列,您可以看到“jquery.min.js:4”,这意味着该请求是从文件“jquery.min.js”的第4行启动的
在所有ajax调用中使用console.log(唯一名称)并运行它。在执行过程中,您可以看到控制台如果使用chrome,只需打开控制台中的日志XMLHttpRequests即可完全完成您想要执行的操作。正如Nirus所说,或者您可以始终使用未缩小的jQuery版本,在请求发生的地方设置断点,或者使用chromes XHR断点,这样您就可以看到整个调用堆栈。我希望,我们无法使用调试jquery API实现javascript@Udhay在开发工具中使用Chrome您有源代码
在右侧您会看到XHR断点
如果您选中任何XHR
,脚本将在每次请求时暂停使用XMLHttpRequest
(因此,任何不使用jsonp
进行请求的请求)使用调用堆栈(也在右侧)你会看到请求的来源。据我所知,你想知道是哪个事件触发了ajax请求。这样你就能找到调用它的函数。还是我理解错了?我没有看到任何XHR复选框。它在以后的Chrome版本中被删除了吗?@Tony_Henrich它在最新的Chrome版本中仍然存在(55.0.2883.95).@Tony_Henrich如果您已经找到了答案,那么此评论是为未来试图找到答案的人准备的,单击+按钮或右键单击并单击添加断点
,然后在字段为空时按enter键,它将自动填充任何xhr
checkbox@YasminFrench谢谢你的信息,我已经更新了我的ans答:我从来没有这样做过,可能这是必需的,因为某个版本的Chrome在我的设置中已经存在,因为它已经存在了。这并不总是有效的,因为有时候Chrome报告其他
。虽然不相关,IE有很好的启动按钮!