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

text/plain与application/json的区别、适用场景及NextJS请求疑问

text/plain 与 application/json 的区别及适用场景

一、核心差异

  • 语义与格式约定:
    • text/plain:仅声明内容是纯文本,无任何结构化格式要求,就是普通字符串。
    • application/json:明确指定内容是符合JSON规范的结构化数据,必须遵循键值对、数组等JSON格式规则。
  • 服务端解析行为:
    • 大部分后端框架(包括NextJS API Routes)会根据Content-Type自动处理请求体:application/json类型的请求,服务端会自动把字符串化的body解析成JSON对象;text/plain类型则不会做解析,直接返回原始字符串。

二、各自适用场景

优先用 application/json 的情况

  • 前后端传递结构化数据:比如提交表单数据、获取带层级的列表/详情、传递配置参数等,只要是有明确键值结构的数据,都用这个类型。
  • 需要服务端自动解析的场景:像你在NextJS里的需求,希望API Routes直接拿到解析好的JSON对象,不用自己手动处理字符串转JSON的步骤。

适合用 text/plain 的情况

  • 传递无结构的纯文本:比如一段日志内容、简单的消息提示、用户输入的纯文本(不需要拆分结构的)。
  • 不需要服务端解析格式的场景:比如只是传递一段简单的文本指令,服务端直接读取原始字符串就能处理。

三、NextJS API Routes 中的实际表现

  • 当你手动设置Content-Type: application/json时,哪怕请求body是JSON.stringify()处理后的字符串,NextJS会自动把req.body解析成JSON对象,直接就能使用。
  • 如果不设置Content-Type,请求工具/浏览器默认会用text/plain,这时候req.body就是原始的字符串,要是内容本身是JSON格式,你得手动调用JSON.parse(req.body)来转换成对象。

内容的提问来源于stack exchange,提问作者Humanoid Mk.12

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.22 09:52:08