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

JavaScript fetch无法设置Content-Type为application/json问题求助

问题原因与解决方案

这是浏览器在mode: "no-cors"模式下的强制限制,和requestcatcher平台无关。

当你设置mode: "no-cors"发起请求时,浏览器会将该请求归类为简单请求,这类请求对自定义请求头有严格限制:

  • 仅允许设置少数安全的请求头,比如Accept、Accept-Language等
  • Content-Type仅允许三个值:application/x-www-form-urlencoded、multipart/form-data、text/plain

你设置的application/json不在允许的Content-Type列表里,所以浏览器会自动将其替换为默认的text/plain;charset=UTF-8;而Accept头不在限制范围内,因此能正常被接收。

解决办法

  • 优先方案:如果目标API支持CORS,直接移除mode: "no-cors"配置,这样浏览器就不会限制你设置application/json请求头,示例代码修改后如下:
fetch("https://example.requestcatcher.com",
{
    method: "POST",
    headers: new Headers({ "Accept":"application/json", "Content-Type":"application/json" }),
    body: "{}"
});
  • 替代方案:如果必须使用no-cors模式,只能改用浏览器允许的Content-Type值,或者通过后端代理转发请求(后端不受浏览器的CORS规则限制)。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.27 22:44:50