Chrome 开发者工具 Network 里 Failed to load response data 提示消息的含义

举报
汪子熙 发表于 2024/02/01 11:47:56 2024/02/01
【摘要】 我试图使用 Chrome 开发者工具 Network 面板,观察 HTTP 请求时,看到了错误提示:Failed to load response data: Request content was evicted from inspector cacheStackOverflow 上对这个问题有很多讨论。这个提示的字面意思是“加载响应数据失败:请求内容已从检查器缓存中逐出”。那么,我们先简...

我试图使用 Chrome 开发者工具 Network 面板,观察 HTTP 请求时,看到了错误提示:

Failed to load response data: Request content was evicted from inspector cache

StackOverflow 上对这个问题有很多讨论。

这个提示的字面意思是“加载响应数据失败:请求内容已从检查器缓存中逐出”。那么,我们先简单了解下什么是 Chrome 开发者工具的检查器缓存。在 Chrome 浏览器中,开发者工具的 Network 面板会自动记录我们发送出去的所有 HTTP 请求的详细信息,包括请求头、响应头、响应数据等,这个过程就涉及到了一个缓存系统,我们称它为 “检查器缓存”。当我们点击一个特定请求查看详细信息时,“检查器缓存” 会用于从内存中恢复这个请求的所有相关数据。

那这里的 “逐出” 是什么意思呢?在计算机科学中,“逐出” 是一个专有名词,通常用于描述一种情况:当缓存被填满后,系统会自动删除一些旧的或者不常用的数据,以释放空间存储新的数据。类似的概念在生活中也很常见,比如我们的电脑硬盘满了,我们就需要删除一些不需要的文件,以便存储新的文件。

所以当我们在 Network 面板看到 Failed to load response data: Request content was evicted from inspector cache 这个错误提示时,实际上就是 Chrome 开发者工具告诉我们,由于“检查器缓存”需要空间存储新的请求数据,所以它将你想要查看的这个请求的数据给删除了,要查看就无法查看了。

在实际开发中,Failed to load response data: Request content was evicted from inspector cache 这个错误通常会在以下两种情况中出现:一是当我们在开发者工具的 Network 面板上发送了大量的 HTTP 请求,这时检查器缓存可能会因为空间不足而把一些旧的请求数据逐出;二是当我们的某个请求返回了大量的数据,使得检查器缓存无法存下这些数据,此时,这个请求的数据也可能被逐出。

上图网友建议,捕获包含 payload 比较大的 HTTP 响应的解决方案是复制请求并通过其他方式执行它,例如 PowerShell 或 cURL。 在 Chrome 或 Firefox DevTools 中,可以通过右键单击请求,选择复制,然后选择您的首选执行方法,将请求复制到 PowerShell、cURL 或 fetch 命令。

对我来说最有效的是从 Firefox 将请求复制为 cURL 命令。 Chrome 给我提供了无效的 cURL 命令。

要捕获对文件的响应,请将 > response.txt 附加到 cURL 命令。

也可以选择cURL作为复制方法并将其导入Postman。 在 Postman 中选择“文件”-“导入”-“原始文本”并复制 cURL 命令。 当我尝试这样做时,它确实弄乱了 POST 请求的 JSON 正文中的双引号,因此可能需要一些手动调整。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。