我注意到一个奇怪的警告信息,当使用谷歌chrome检查器(F12)查看下载的资源:
注意显示临时标题
我发现一些可能相关的东西,网络面板:添加临时请求头的警告,但我不能完全理解它。相关问题可以发现Chrome块请求以及XMLHttpRequest无法加载。未加载的资源显示警告:显示临时标头。
与第一个问题类似,我的资源被阻塞了,但后来自动加载了相同的资源。不像第二个问题,我不想解决任何问题;我想知道这条信息是什么意思以及我为什么收到它。
我注意到一个奇怪的警告信息,当使用谷歌chrome检查器(F12)查看下载的资源:
注意显示临时标题
我发现一些可能相关的东西,网络面板:添加临时请求头的警告,但我不能完全理解它。相关问题可以发现Chrome块请求以及XMLHttpRequest无法加载。未加载的资源显示警告:显示临时标头。
与第一个问题类似,我的资源被阻塞了,但后来自动加载了相同的资源。不像第二个问题,我不想解决任何问题;我想知道这条信息是什么意思以及我为什么收到它。
当前回答
在我的案例中,原因是AdBlock扩展。
向服务器的请求通过了,我得到了响应,但由于“临时头部..”显示在Dev工具中,我无法看到请求cookie。禁用AdBlock后,警告消失了,开发工具开始再次显示cookie。
为了使更改生效,还需要关闭Dev工具并刷新页面
其他回答
当使用HSTS保护网站时,可能会出现此消息。然后,当有人链接到URL的HTTP版本时,浏览器根据HSTS的指示,不会发出HTTP请求,而是在内部安全地重定向到HTTPS资源。这是为了避免sslstrip等HTTPS降级攻击。
当使用一些包(如webpack-hot-middleware)并同时打开多个页面时,也会出现此问题。Webpack-hot-middleware将为每个页面创建一个连接,用于侦听代码的更改,然后刷新页面。每个浏览器都有每个服务器最大连接数限制,对于Chrome来说是6个,所以如果你已经在Chrome中打开了超过6个页面,新的请求将一直挂在那里,直到你关闭一些页面。
我的MEAN应用程序也有类似的问题。在我的情况下,这个问题只发生在一个get请求中。我尝试删除广告块,尝试清除缓存,并尝试与不同的浏览器。没有什么帮助。
最后,我发现api试图返回一个巨大的JSON对象。当我尝试发送一个小对象时,它工作得很好。最后,我改变了我的实现,返回一个缓冲区而不是JSON。
我希望expressJS在这种情况下抛出一个错误。
资源可能被一个扩展阻塞(在我的情况下是AdBlock)。
该消息之所以存在,是因为从未发出检索该资源的请求,因此显示的标头并不是真正的标头。正如在您引用的问题中所解释的那样,服务器响应时更新真实的头,但如果请求被阻塞,则没有响应。
我发现的方式是通过Chrome中的net-internals工具扩展阻止了我的资源:
chrome的最新版本
在地址栏中输入chrome://net-export/,然后按enter键。 开始录音。并保存录音文件到本地。 打开显示问题的页面。 回到net-internals 您可以查看“记录日志”文件https://netlog-viewer.appspot.com/#import 点击events(###),然后使用文本框找到与你的资源相关的事件(使用部分URL)。 最后,单击事件,看看所显示的信息是否告诉了你一些东西。
chrome的旧版本
在地址栏中输入chrome://net-internals并按enter键。 打开显示问题的页面。 返回net-internals,单击events(###),并使用文本字段查找与您的资源相关的事件(使用URL的一部分)。 最后,单击事件,看看所显示的信息是否告诉了你一些东西。
我看到的另一种可能的情况是——在几毫秒后,完全相同的请求再次发送(很可能是由于客户端存在错误)。 在这种情况下,您还将看到第一个请求的状态是“取消”,并且延迟只有几毫秒。