我注意到一个奇怪的警告信息,当使用谷歌chrome检查器(F12)查看下载的资源:

注意显示临时标题

我发现一些可能相关的东西,网络面板:添加临时请求头的警告,但我不能完全理解它。相关问题可以发现Chrome块请求以及XMLHttpRequest无法加载。未加载的资源显示警告:显示临时标头。

与第一个问题类似,我的资源被阻塞了,但后来自动加载了相同的资源。不像第二个问题,我不想解决任何问题;我想知道这条信息是什么意思以及我为什么收到它。


当前回答

HTTP/2推送资源将产生临时头显示在检查器中,与@wvega在上面的回答中发布的理论相同。

例:由于服务器将资源推送到客户端(在客户端请求它们之前),浏览器已经缓存了这些资源,因此客户端从不发出/需要请求;所以因为…

...当服务器响应时更新真实的头,但是如果请求被阻塞,则没有响应。

其他回答

如果响应无效并因此被浏览器删除,也会出现此警告消息。

在我的例子中,请求被正确地发送到服务器,服务器端代码随后产生一个错误,我的自定义错误处理在HTTP状态消息字段中返回错误消息。但是客户端没有收到此错误,因为错误消息中的无效字符(此处描述为http://aspnetwebstack.codeplex.com/workitem/1386)导致响应报头损坏。

这是另一个解决方案。

如果您在使用$ajax()调用时遇到此问题,请在您的serverhost解决问题之前添加http://。

var requestURL = "http://" + serverHost;
$.ajax({
    dataType: "json",
    url: requestURL,
    data: data,
    success: success    
});

这发生在我身上,当我有一个下载链接,点击它后,我也试图用jquery捕捉点击,并发送一个ajax请求。问题是,当你点击下载链接时,你正在离开页面,即使它看起来不是这样。如果没有文件传输,您将看到所请求的页面。所以我设置了一个target="_blank"来防止这个问题。

当托管在HTTPS上的网站调用托管在HTTP上的WebApi时,可以显示“警告:临时头部显示”消息。你可以检查所有Api是否都是HTTPS。浏览器阻止对不安全资源的调用。当使用FETCH API对HTTP进行域划分时,您可以在代码中看到类似的消息。

混合内容:“https://website.com”的页面通过HTTPS加载,但请求了一个不安全的资源“http://webapi.com”。此请求已被阻止;内容必须通过HTTPS提供。

尝试用ctrl + shift +F5重新加载页面,然后再次检查请求头

没有显示完整的头文件,因为有可能请求没有发送到服务器,而是直接从浏览器的缓存(例如使用service worker)提供服务