POST请求Content-Type设置不生效,始终显示text/plain问题求助
问题:设置
Content-Type: application/json后浏览器仍显示text/plain 调用API时已在请求头中设置Content-Type: 'application/json',但浏览器请求头仍显示Content-Type: 'text/plain',导致后端接收到的payload对应的Content-Type为text/plain。
原代码如下:
export const abctrigger = (payload , signal) => { Return fetch (API_URL, { method: post, Signal: signal Body: JSON.stringify(payload), headers: { Content-Type : 'application/json' } }) .then((response) => response.text()) .then((response) => { return respon se; }) }
问题原因及修复方案
你的代码存在语法和大小写错误,导致fetch配置未被正确解析,请求头设置失效:
- JavaScript关键字和fetch配置项需小写:
Return改为return,Signal改为signal,Body改为body method的值post是字符串,必须加引号,否则会被当作未定义变量处理Signal: signal后缺少逗号,导致后续的Body和headers配置被忽略- 拼写错误:第二个
then中的respon se需修正为response
修正后的代码
export const abctrigger = (payload, signal) => { return fetch(API_URL, { method: 'post', signal: signal, body: JSON.stringify(payload), headers: { 'Content-Type': 'application/json' } }) .then((response) => response.text()) .then((response) => { return response; }) }
修正后,fetch会正确读取headers配置,浏览器请求头将显示Content-Type: application/json,后端也能正确识别payload类型。
内容的提问来源于stack exchange,提问作者Shirish
相关产品推荐
相关产品推荐

