React前端使用fetch()发送POST请求报错排查及解决
问题描述
我尝试从React前端向Node.js后端发送数据,每次用fetch()发起POST请求时,Firefox控制台都会报错:TypeError: NetworkError when attempting to fetch resource。我试过请求http://localhost:8080/uploadComic,甚至第三方地址https://reqbin.com/post也出现同样错误。但用Firefox开发者工具直接请求后端地址能收到响应,所以怀疑是前端代码的问题。
前端代码:
handleSubmit = async () => { fetch('http://localhost:8080/uploadComic', { method: 'POST', headers: { 'Content-Type': 'application/json', }, body: JSON.stringify({message: 'test'}) }).then(data => { console.log(data) }).catch(e => { console.log(e) }) }
后端代码:
router.post('/uploadComic', function (req, res) { // 此日志从未打印 console.log('/uploadComic: request recieved') })
我用fetch()发起的多个GET请求都正常,为了能收到后端响应已经尽可能简化代码,但卡了很久找不到原因。
问题解决
最终发现问题出在HTML中的<form>元素上,移除<form>标签后数据成功发送。
内容的提问来源于stack exchange,提问作者loganwood01
相关产品推荐
相关产品推荐

