当前位置: 首页 > news >正文

使用Fetch时,post数据时,后端接收的Content-Type为text/plain

在使用 Fetch做一个前端的post请求时,直接从网上抄了一段代码

export async function postData(url, data){const response = await fetch(url, {method: 'POST', // *GET, POST, PUT, DELETE, etc.mode: 'no-cors', // no-cors, *cors, same-originheaders: { 'Content-Type': 'application/json','Accept':'application/json' },body: JSON.stringify(data) // body data type must match "Content-Type" header});
}

 在本地测试时,一个有趣的事情发生了

从前端控制台我们可以得到一个415(这个一般是请求的文本格式有问题) 

 从后端看到的日志为

 Content type 'text/plain;charset=UTF-8' not supported

 实际上上述代码是添加了请求头了,同时从前端的请求信息中也可以得出

Content-Type: application/json

确实没有错,但是到了后端怎么回是text/plain呢?

各种操作都试了还是不行,最后发现因为设置了no-cors

问题是,当您在“模式”“no-cors”下工作时,标头变得不可变,您将无法更改其某些条目。您无法更改的头部之一是 Content-Type。当您将“mode”设置为“no-cors”时,您将只能更改这些标头:

  • Accept
  • Accept-Language
  • Content-Language
  • Content-Type and whose value, once parsed, has a MIME type (ignoring parameters) that is application/x-www-form-urlencoded , multipart/form-data , or text/plain

In another words, in ‘mode’ ‘-no-‘cors’ you can only set application/x-www-form-urlencoded , multipart/form-data , or text/plain to the Content-Type 。

所以解决方案是停止使用 fetch 或将其更改为 ‘cors’ ‘mode’。当然,这只有在您的服务器也接受“cors”请求时才有效。

javascript - Fetch: post json 数据,application/json 变为 text/plain - SegmentFault 思否

 最后移除        mode: 'no-cors', // no-cors, *cors, same-origin 就可以了!!!

cors是和跨域问题有关的,解决跨域的问题还是很多方法的,除了添加头以外

http://www.lryc.cn/news/1987.html

相关文章:

  • 大型智慧校园系统源码 智慧校园源码 Android电子班牌源码
  • 【MySQL】你知道的MySQL中的集合函数有哪些呢?
  • 科目一罚款题
  • Maven中央仓库地址大全
  • 人工智能的未来———因果推理what if 第11章(统计模型) 文章解读
  • 百度贴吧发帖软件如何发布?
  • 如何成为java架构师?2023版Java架构师学习路线总结完成,真实系统有效,一切尽在其中
  • tkinter 实现选择文件夹或者多个文件
  • 深圳活动会议媒体邀约,电视台,网媒媒体资源
  • JDBC与Druid连接池
  • java易错题锦集二
  • 11.hadoop系列之MapReduce框架原理之InputFormat数据输入
  • LoadRunner
  • 笔试题-2023-芯原-数字前端设计or验证【纯净题目版】
  • 【软件测试】资深测试工程师说:你真的能做好bug分析吗?
  • NLP模型检查英语语法错误
  • Echarts的Category轴滑动
  • 04 react css上下浮动动画效果
  • 关于线程池
  • 【GPLT 二阶题目集】L2-004 这是二叉搜索树吗?
  • Python Numpy基础教程
  • 常见HTTP请求错误码大全
  • 重保期间如何「快速」构建内容安全治理体系?
  • 用Qt开发的ffmpeg流媒体播放器,支持截图、录像,支持音视频播放,支持本地文件播放、网络流播放
  • 第七节 平台设备驱动
  • 代理模式详解
  • 根据报告20%的白领在一年内做过副业,你有做副业吗?
  • 第二十三周周报
  • 2023年Q1业绩增长背后,迪士尼亟待扭转流媒体亏损困局
  • LKWA靶场通关和源码分析