HTTP 204 导致在 Chrome 中下载

Posted

技术标签:

【中文标题】HTTP 204 导致在 Chrome 中下载【英文标题】:HTTP 204 leads to download in Chrome 【发布时间】:2019-07-30 07:52:01 【问题描述】:

当我尝试响应 HTTP 204 状态时,我的 Chrome 浏览器正在启动失败的下载。

请求: 请求网址:https://dummy.page/dummyRequest 请求方法:GET 状态码:204 远程地址:[虚拟]:443 推荐人政策:降级时无推荐人

回应: 日期:格林威治标准时间 2019 年 3 月 8 日星期五 08:24:05 服务器: 状态:204

当我使用 Dev-Tool 检查响应时,chrome 显示“无法加载响应数据”,在 Firefox 中我可以看到一个空行。

我的服务器通过 Java 返回一个响应:

return Response.noContent().build();

此时我也尝试返回 NULL,但这并没有改变任何东西。

整个事情在 Firefox 中运行良好,但是当我在 Chrome 中尝试时,它开始下载“dummyRequest”(来自 URL)失败。

那么我想知道的是:为什么 Chrome 会开始下载,我该怎么做?

感谢您的帮助;)

【问题讨论】:

我也很想知道这个问题的答案。我真的不明白为什么 Chrome 会尝试下载标有“无内容”的页面。下载失败,因为....等待它..没有内容。不确定这是否与我发送标头的方式有关,或者是否是 Chrome 中的错误。 【参考方案1】:

我在 204 回复中遇到了同样的问题。对我有用的是在发送响应之前检查服务器端的 Content-Type 响应标头。

我的 204 响应发送了 default Content-Type 或 application/octet-stream(来自链接:“未知文件类型应使用此类型。浏览器在处理这些文件时要特别小心”)。当将 Content-Type 切换为不同的内容时(我选择了text/html),下载的触发器停止了。

【讨论】:

以上是关于HTTP 204 导致在 Chrome 中下载的主要内容,如果未能解决你的问题,请参考以下文章

Chrome 在下载 PDF 时发送两个请求(并取消其中一个)

[Python自学] 爬虫selenium

[Python自学] 爬虫selenium

Chrome 下载安全性检测

chrome 离线下载

怎么用chrome在国外看优酷视频??