【问题标题】:fetch() is not POSTing JSON bodyfetch() 未发布 JSON 正文
【发布时间】:2017-09-07 10:27:39
【问题描述】:

fetch() API 未发布此 JSON 正文。

var j = {
    "addressee": "James"
};
return fetch('http://requestb.in/blahblahblah', {
    method: 'POST',
    headers: {
        'Accept': 'application/json',
        'Content-Type': 'application/json',
        'Cache-Control': 'no-cache'
    },
    body: JSON.stringify(j)
})

RequestBin 中绝对没有为此显示请求正文。身体会发生什么?调试JSON.stringify(j) 表明它确实在正确格式化正文。

【问题讨论】:

  • 请求是否出现在浏览器开发者工具的网络窗格中?

标签: json reactjs fetch-api


【解决方案1】:

原来 fetch() API 正在发送一个 OPTIONS 预检请求,以查看服务器上的 CORS 配置。删除我的 fetch() 请求中的标头阻止了这种情况的发生。

【讨论】:

    【解决方案2】:

    我通过改变解决了这个问题

    <input type="submit" onSubmit={()=>{}}/>
    

    <button type="button" onClick={this.someFunction}>Submit</button>
    

    不知道为什么,但是在 Firefox 中使用 ReactJS 开发的应用程序时,这一直对我有用。没有这个,浏览器根本不会触发 POST 请求(在开发人员选项:网络选项卡中看不到它)。

    使用此补救措施,它无需进行任何其他更改即可正常工作,开始看到 POST 请求。

    【讨论】:

      猜你喜欢
      • 2018-06-28
      • 2021-02-11
      • 2016-09-02
      • 1970-01-01
      • 2021-01-15
      • 2018-02-26
      • 2013-10-06
      • 2016-05-23
      • 2018-11-29
      相关资源
      最近更新 更多