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

Next.js 13 如何修改Server Action的请求Content-Type?

如何修改客户端调用Server函数时的Content-Type为application/json

当然可以改,具体实现要看你用的框架和调用方式:

自定义客户端请求场景

如果是你自己手动写fetch调用后端接口,直接在请求头里指定Content-Type就行:

async function invokeServerFn(data) {
  const response = await fetch('/path/to/your/server-fn', {
    method: 'POST',
    headers: {
      'Content-Type': 'application/json;charset=utf-8',
      'Accept': 'application/json'
    },
    body: JSON.stringify(data)
  });
  return response.json();
}

框架内置Server函数场景(比如Next.js Server Actions)

像Next.js的Server Actions这类框架内置的服务端函数调用,默认会用text/plain的Content-Type——因为它的请求体是框架封装过的特殊格式。如果一定要换成application/json,有两个思路:

  1. 放弃内置的Server Action调用,改用自定义API路由,然后按上面的方法手动设置请求头
  2. 如果非要用Server Action,只能在服务端兼容解析:把请求体当成文本读取后再转JSON,但这属于反向适配,不如直接用API路由来得顺畅

通用注意事项

改完客户端的Content-Type后,必须确保服务端对应调整解析逻辑:比如Node.js/Express里要启用express.json()中间件,而不是express.text();如果是其他后端语言,也要改成解析JSON格式的请求体,否则会出现数据解析失败的问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.06 01:52:06