You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Google Chrome点击按钮无法下载.war文件,Mozilla运行正常

WAR文件在Chrome中点击直接打开而非下载的解决方案

不同浏览器对未知类型资源的默认处理逻辑存在差异,Firefox默认对无明确预览规则的二进制资源触发下载,而Chrome会优先尝试解析预览,只要响应头没有明确指定下载规则,就会直接打开。可以通过以下两种方案修复:

前端修改方案

直接给下载链接增加download属性,强制浏览器触发下载行为,示例代码:
<a href="/resource-path/your-app.war" download="your-app.war">下载WAR包</a>

注意:如果你的WAR文件存放在跨域域名下,需要后端配置Access-Control-Expose-Headers: Content-Disposition响应头,否则download属性在跨域场景下会失效。

后端修改方案(更稳定,兼容所有浏览器)

只需要给WAR文件的下载接口配置两个固定响应头即可:

  • Content-Type: application/octet-stream:声明资源为二进制流,禁用浏览器的格式解析逻辑
  • Content-Disposition: attachment; filename="自定义文件名.war":明确告知浏览器该资源需要作为附件下载,同时设置默认保存的文件名

如果是Spring Boot等Java后端,参考代码:

@GetMapping("/download/war")
public void downloadWarFile(HttpServletResponse response) throws IOException {
    File warFile = new File("/opt/server/your-app.war");
    response.setContentType("application/octet-stream");
    response.setContentLength((int) warFile.length());
    response.setHeader("Content-Disposition", "attachment; filename=\"your-app.war\"");
    // 输出文件流
    Files.copy(warFile.toPath(), response.getOutputStream());
}

如果是用Nginx托管静态WAR文件,在对应location配置块中添加如下规则:

location ~* \.war$ {
    default_type application/octet-stream;
    add_header Content-Disposition "attachment; filename=$request_filename";
}

点击按钮后下载的图片

内容的提问来源于stack exchange,提问作者ankit

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.06 14:54:03