我注意到一个奇怪的警告信息,当使用谷歌chrome检查器(F12)查看下载的资源:
注意显示临时标题
我发现一些可能相关的东西,网络面板:添加临时请求头的警告,但我不能完全理解它。相关问题可以发现Chrome块请求以及XMLHttpRequest无法加载。未加载的资源显示警告:显示临时标头。
与第一个问题类似,我的资源被阻塞了,但后来自动加载了相同的资源。不像第二个问题,我不想解决任何问题;我想知道这条信息是什么意思以及我为什么收到它。
我注意到一个奇怪的警告信息,当使用谷歌chrome检查器(F12)查看下载的资源:
注意显示临时标题
我发现一些可能相关的东西,网络面板:添加临时请求头的警告,但我不能完全理解它。相关问题可以发现Chrome块请求以及XMLHttpRequest无法加载。未加载的资源显示警告:显示临时标头。
与第一个问题类似,我的资源被阻塞了,但后来自动加载了相同的资源。不像第二个问题,我不想解决任何问题;我想知道这条信息是什么意思以及我为什么收到它。
当前回答
我在AJAX调用时遇到了这个问题,它永远不会完成。我遵循了wvega的建议和关于调试chrome://net-internals的提示,最终确定页面中的另一个点击事件处理程序,监听父节点,导致浏览器导航到相同的URL(所以它不容易被注意到)。
解决方案是在表单提交按钮的单击处理程序中添加event.stopPropagation(),以防止单击弹出DOM并取消正在进行的AJAX请求(通过表单上的提交处理程序发起)。
其他回答
我相信当实际的请求没有发送时就会发生这种情况。通常在加载缓存资源时发生。
这发生在我身上,当我有一个下载链接,点击它后,我也试图用jquery捕捉点击,并发送一个ajax请求。问题是,当你点击下载链接时,你正在离开页面,即使它看起来不是这样。如果没有文件传输,您将看到所请求的页面。所以我设置了一个target="_blank"来防止这个问题。
我遇到过这个,当我从https切换到http时,它就消失了。我们在开发中使用的SSL证书没有经过第三方的验证。它们只是本地生成的开发证书。
同样的调用在Chrome Canary和Firefox中也能正常运行。这些浏览器似乎不像Chrome那样严格要求SSL证书。调用将失败在Chrome与“警告:临时头…”消息。
我认为/希望当我们在阶段和prod中使用合法的SSL证书时,我们将不再在Chrome中看到这种行为。
HTTP/2推送资源将产生临时头显示在检查器中,与@wvega在上面的回答中发布的理论相同。
例:由于服务器将资源推送到客户端(在客户端请求它们之前),浏览器已经缓存了这些资源,因此客户端从不发出/需要请求;所以因为…
...当服务器响应时更新真实的头,但是如果请求被阻塞,则没有响应。
发生这种情况的一个常见原因是,如果您正在跟踪事件而没有阻止默认操作。例如,如果你有一个点击事件,那么你会想要包括:
e.preventDefault();
or
return false;
如果你不这样做,你会在你的web控制台的Network选项卡中看到临时头部警告以及“取消”状态。