我经常使用 Chrome 网络选项卡来收集网络跟踪信息。大约 50% 的时间它都能正常工作。为什么 Charles Proxy 和 Fiddler 等代理工具可以成功收集数据,而 Chrome 工具却不一致?
重要的是,我无法始终获得回复。是重定向吗?还是其他原因?
这里有一个例子,我有几个包含此消息的回复:
"Failed to load response data: No resource with given identifier found"
这只是一个例子,但一般来说,还有其他消息,但没有回复。
有没有更好的插件?我有时会使用 SAML-tracer,但它没有得到响应,但它确实有一些数据并且工作稳定。我是否遗漏了某个标志或设置?
答案1
该问题似乎已在 2012 年的错误报告中提及(!)
问题 141129:DevTools:导航后 XHR(和其他资源)内容不可用。
Chrome 开发人员 Eustas 的解释是:
我看到的是,在网络面板中未查看的资源在页面导航后将无法访问。
这是“低开销”政策的结果 - 资源内容不会传输到 DevTools,除非用户明确想要查看。这样做是为了避免测量结果出现偏差。
当然,我们可以在导航之后保留资源,但这会增加内存负担:想象一下,用户(或网站本身)持续且无限地导航......
当前的解决方案是一个很好的折衷方案:如果愿意,用户可以在导航之间检查资源;另一方面,用户可以在单个时间线上检查多个导航的网络时间。
帖子中的最后一条评论来自 2022 年:
虽然理论上可行,但这可能要付出巨大的努力,而且我们短期内没有能力完成这项工作。
结论是问题仍然存在,因此你只能使用变通方法:
- 使用其他浏览器(Firefox 有很好的开发工具)
- 在 Sources 标签页中添加断点:
在 Chrome DevTools 中,点击“Sources”标签页,展开“Event Listener Breakpoints”,展开“Load”并勾选“beforeunload”,然后重新加载请求。 - 使用 Postman 查看回复。
有关这些解决方法的更多信息,请参阅文章
如何修复 Chrome 无法加载响应数据错误。
答案2
补充一下上面的回答:这个问题好像只有Preserve log
启用的时候才会出现。
当我Export HAR
在 devtools 中使用时,我发现了这个问题。
另外,beforeunload断点无法解决开启Preserve log时无法查看响应栏的问题。