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 中下载的主要内容,如果未能解决你的问题,请参考以下文章