Skip to content

content-type与responseType

https://mime.wcode.net/zh-hans/ MIME 类型

  1. Content-Type** 请求头 (在 Axios 的 headers 中设置)**
    • 值是 MIME 类型! 它的值必须是一个标准的 MIME 类型字符串(有时包含可选的 charset 参数)。
    • 作用: 告诉服务器,你发送的请求体 (request body) 是什么格式的数据。
    • 示例:
      • application/json (发送 JSON 数据)
      • application/x-www-form-urlencoded (发送 URL 编码的表单数据)
      • multipart/form-data (发送包含文件上传的表单数据)
      • text/plain (发送纯文本)
      • application/xml (发送 XML 数据)
  2. Content-Type** 响应头 (由服务器设置)** ​
    • 值是 MIME 类型! 它的值必须是一个标准的 MIME 类型字符串(有时包含可选的 charset 参数)。
    • 作用: 告诉客户端(浏览器或你的 Axios 代码),服务器返回的响应体 (response body) 是什么格式的数据。
    • 示例:
      • application/json (返回 JSON 数据)
      • text/html (返回 HTML 网页)
      • image/png (返回 PNG 图片)
      • text/plain; charset=utf-8 (返回 UTF-8 编码的纯文本)
      • application/pdf (返回 PDF 文件)
  3. responseType** (Axios 请求配置项)** ​
    • 值 不是 标准的 MIME 类型! 它是一个 Axios 特定的字符串,指示你希望 Axios 如何将响应体数据转换成 JavaScript 对象。
    • 作用: 告诉 Axios 你希望以什么格式接收服务器返回的数据(它控制 response.data 的类型)。
    • 可选值:
      • 'json' (尝试将响应体解析为 JSON 对象)
      • 'text' (将响应体作为字符串返回)
      • 'arraybuffer' (将响应体作为 ArrayBuffer 返回)
      • 'blob' (将响应体作为 Blob 对象返回)
      • 'document' (尝试将响应体解析为 XML Document)
      • 'stream' (Node.js 环境,将响应体作为流返回)

关键区分表格

概念 / 设置项值是否 MIME 类型?作用描述示例值
Content-Type ** 请求头**​**是** ✅告诉服务器:我发给你的是这种格式的数据 (MIME 类型)`application/json`, `multipart/form-data`
Content-Type ** 响应头**​**是** ✅告诉客户端:我返回给你的是这种格式的数据 (MIME 类型)`application/json`, `image/jpeg`
**responseType**​**不是** ❌告诉 Axios:请把响应数据转换成这种 JavaScript 类型给我`'json'`, `'blob'`, `'text'`

总结

  • MIME 类型 (type/subtype) 是 互联网标准,用于标识数据的本质格式
  • Content-Type** 头(无论请求头还是响应头)的值就是 MIME 类型**。它描述的是 HTTP 消息体(Body)中原始数据的格式
  • responseType** 是 Axios 库的一个配置属性**。它的值不是 MIME 类型,而是一个简短的字符串指令,用于告诉 Axios 库你希望它如何处理接收到的原始响应体数据(基于服务器的 Content-Type 响应头标识的 MIME 类型数据),并将其转换成你方便使用的 JavaScript 类型(如对象、字符串、二进制 Blob 等)。

简单记忆:

  • Content-Type (请求头或响应头):描述数据“是什么” (MIME 类型)
  • responseType告诉 Axios 我“想要什么样子”的数据 (JS 类型)

基于 Obsidian + VitePress 构建