Content-Type 参考
Content-Type 用于说明请求体或响应体的媒体类型。接口调试、文件上传、静态资源返回异常时,通常都要先检查这个响应头。
语法
Content-Type: <media-type>; charset=<encoding>
常见值
| Content-Type | 场景 |
|---|---|
text/html; charset=utf-8 |
HTML 页面 |
application/json |
JSON 接口 |
text/css |
CSS 文件 |
application/javascript |
JavaScript 文件 |
image/svg+xml |
SVG 图片 |
application/x-www-form-urlencoded |
普通表单 |
multipart/form-data |
文件上传表单 |
text/plain |
纯文本 |
JSON POST 示例
await fetch("/api/users", {
method: "POST",
headers: {
"Content-Type": "application/json",
},
body: JSON.stringify({ name: "Tom" }),
});
文件上传注意
使用 FormData 上传文件时,不要手动设置 Content-Type:
const formData = new FormData(form);
await fetch("/api/upload", {
method: "POST",
body: formData,
});
浏览器会自动生成带 boundary 的 multipart/form-data。
常见错误
- JSON 请求缺少
Content-Type: application/json,服务端按文本或表单解析。 - 文件上传手写
multipart/form-data,缺少 boundary。 - 静态资源 MIME 类型错误,浏览器拒绝执行 CSS 或 JavaScript。
- 服务端返回 HTML 错误页,但前端按 JSON 解析,出现
Unexpected token <。
安全提示
为了减少浏览器 MIME sniffing 带来的误判,静态资源服务可以配合:
X-Content-Type-Options: nosniff
相关内容
- MIME Type 查询工具
- HTTP Reference
- HTTP Headers 总览
- FormData 参考
- Fetch 如何发送 JSON POST 请求
- Fetch 如何上传文件
- MDN Content-Type
相关内容
- Cache-Control 参考 Cache-Control Reference,整理 max-age、no-cache、no-store、public、private、immutable、静态...
- CORS 参考 CORS Reference,整理跨域请求、预检请求、Access-Control-Allow-Origin、credentials、常见报错和 fetch 调...
- HTTP Headers 总览 HTTP Headers Reference,整理 Accept、Authorization、Cache-Control、Content-Type、Cookie...
- HTTP Redirect 参考 HTTP Redirect Reference,整理 301、302、303、307、308 的区别、Location 响应头、SEO 场景、Nginx 示例和...
- HTTP 状态码总览 HTTP 状态码 Reference,按 1xx、2xx、3xx、4xx、5xx 整理常见状态码含义、使用场景、前端处理和 SEO 注意事项。