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

注意显示临时标题

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

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


当前回答

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

其他回答

资源可能被一个扩展阻塞(在我的情况下是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的一部分)。 最后,单击事件,看看所显示的信息是否告诉了你一些东西。

在你的代码中使用以下代码:

header('Cache-Control: no-cache, no-store, must-revalidate');
header('Pragma: no-cache');
header('Expires: 0');

这对我很有用。

在我的案例中,原因是AdBlock扩展。

向服务器的请求通过了,我得到了响应,但由于“临时头部..”显示在Dev工具中,我无法看到请求cookie。禁用AdBlock后,警告消失了,开发工具开始再次显示cookie。

为了使更改生效,还需要关闭Dev工具并刷新页面

我相信当实际的请求没有发送时就会发生这种情况。通常在加载缓存资源时发生。

在AJAX URL属性中发送参数时,我遇到了这个问题 http://10.165.10.160:82/services?param1=xxxx&param2=xxxx

如果你想执行一个get请求(例如发送参数化url),不要在url属性中添加它们,而是在数据对象中添加:

        <script>
        $.ajax({
        url: "http://10.160.10.160:82/services/STD_ERROR.php",
        data: {
            StatusText: StatusText,
            Status: Status,
            UserCode: UserCode,
            FUNC_CODE: FuncCode,
            ErrorDescription: ErrorDescription
        },
        type: "GET",
        crossDomain: true,
        cache: false
    }).done(data => {
        console.log(data)
    }).fail(function(xhr, status, error) {
        console.log(xhr.ErrorDescription)
    });
</script>