yuzo555
2023-08-20 17:29:22 +08:00
这个取决于 Content-Disposition 响应头是 inline 还是 attachment
inline 就是在浏览器内直接展示,attachment 就是下载
但除非服务端主动设置,一般响应不会有 Content-Disposition 响应头的,此时浏览器会针对不同的文件类型(即 Content-Type 响应头)来决定
对于浏览器来说:
一般常见的纯文本文件类型(如 text/* 、JS 、CSS 等)浏览器会直接采用 inline 原样展示出来;
一些浏览器原生支持的文件类型(例如支持的图片 image/*、支持的音视频 audio/*、video/*、网页 text/html 、PDF 等)浏览器会直接解析展示出来;
如果不属于上面两类,浏览器会采用 attachment 触发下载。
服务端如何自动设置 Content-Type 响应头:
一般服务器都有一个 MIME 类型表,为不同的文件后缀自动设置 Content-Type 响应头
例如 .mp4 文件 对应 video/mp4 ;.js 文件对应 text/javascript
对于 MIME 类型表里面没有的文件后缀类型,服务器也会设置一个默认值,不同服务器会有不同,例如 application/octet-stream 或者 text/plain 等
OP 这个情况很明显是服务器 MIME 类型表里没有 txt 这个后缀,然后服务器自动设置 Content-Type 响应头为 application/octet-stream ,然后浏览器会默认采用 attachment 触发下载。
所以只需要在服务器 MIME 类型表里补充 txt 这个后缀为 text/plain 即可。