如何使用Chrome的网络调试器进行重定向

时间:2012-06-11 20:59:55

标签: http google-chrome google-chrome-devtools

Chrome网络调试程序让我可以很好地查看为页面加载的所有HTTP资源。但是只要加载新的顶级HTML页面,它就会清除列表。这使得调试由于某种原因而自动重新加载的页面非常困难(运行脚本或300个响应)。

我是否可以告诉Chrome在加载新的顶级页面时不要清除网络调试程序?或者我可以返回查看上一页的网络资源吗?

或者我可以以某种方式强制Chrome在加载新页面之前暂停,而我无法控制页面我试图调试正在进行重定向?它是OpenID舞蹈中出现问题的一部分,因此SSL和凭证的组合使得使用命令行工具进行调试非常困难。

4 个答案:

答案 0 :(得分:459)

由于@Daniel Alexiuc& @Thanatos的评论。


当前(≥v32)

在DevTools的“网络”标签顶部,有一个复选框可以打开“保留日志”功能。如果选中,则在页面加载时保留网络日志。

Chrome v33 DevTools Network Tab: Preserve Log

左侧的小红点现在可以完全打开和关闭网络日志。


旧版本

在早期版本的Chrome(此处为v21)中,“网络”标签的页脚中有一个可点击的红点。

Chrome v22 DevTools Network Tab: Preserve Log Upon Navigation

如果您将鼠标悬停在它上面,它会告诉您,它会在激活后“保留导航时保留”。它是有希望的。

答案 1 :(得分:144)

我不知道如何强制Chrome不清除网络调试器,但这可能会实现您的目标:

  1. 打开js控制台
  2. window.addEventListener("beforeunload", function() { debugger; }, false)
  3. 这会在通过点击断点加载新页面之前暂停chrome。

答案 2 :(得分:22)

刚刚更新@bfncs回答

我认为围绕Chrome 43的行为有所改变。您仍然需要启用保留日志才能看到,但现在重定向显示在其他选项卡下,当加载的文档显示在Doc下时。

这总是让我感到困惑,因为我有很多网络请求,并按XHR,Doc,JS等类型对其进行过滤。但是在重定向的情况下,Doc选项卡是空的,所以我不得不猜测。

答案 3 :(得分:12)

在重定向到其他页面之前调试网络调用的另一种很棒的解决方案是选择beforeunload事件断点

这样,您可以确保在将流重定向到另一个页面之前中断流,这样所有网络调用,网络数据和控制台日志仍然存在。

当您想查看电话的响应是什么时,此解决方案是最佳的

Chrome beforeunload event break point

P.S: 如果要在特定呼叫或任何呼叫之前之前停止,也可以使用XHR断点(请参见示例) XHR break point