问题是
mode: 'no-cors'
从文档中
…
防止该方法成为HEAD,GET或POST之外的任何其他内容, 并且 阻止 标头成为
简单标头之外的任何其他内容
的 简单 内容类型报头限制允许
text/plain
,application/x-www-form-urlenpred
和multipart/form-data
这会导致您精心制作的
Content-Type: application/json标头成为
content-type:text/plain(至少在通过Chrome测试时)。
由于您的Express服务器需要JSON,因此它不会解析此请求。
我建议省略
mode配置。
"cors"而是使用默认选项。
由于您的请求并不 简单
,因此您可能需要向Express服务器中添加一些CORS中间件。
另一个(略有漏洞)选项是告诉Express将
text/plain请求解析为JSON。这使您可以将JSON字符串作为简单请求发送,这也可以避免预检
OPTIONS请求,从而降低总体网络流量。
app.use(express.json({ type: ['application/json', 'text/plain']}))编辑:将结尾括号添加到
app.use最终代码块。



