Fetch API 产生“TypeError: failed to fetch"
我在 Chrome 上,看到这个奇怪的错误:
I am on Chrome, and I see this bizarre error:
TypeError: failed to fetch
(是的,这就是整个错误消息).
这是产生错误的代码:
fetch(logoUrl, {
method: 'put',
headers: {
'Content-Type': 'image/jpeg',
//encode credentials as base64
'Authorization': 'Basic ' + btoa('cdt-deployer:xyz'),
},
body: imgFile // the file
}).catch(function(err){
// the error appears here
})
我该怎么办?我不知道出了什么问题.我只是想将二进制图像文件发送到另一台服务器(我看不到服务器日志).
what am I supposed to do? I have no idea what's wrong. I am simply trying to send a binary image file to another server (I cannot see the server logs).
推荐答案
来自 获取 API 文档:
当遇到网络错误时,fetch()
承诺会以 TypeError
拒绝,尽管这通常意味着权限问题或类似问题.
A
fetch()
promise rejects with aTypeError
when a network error is encountered, although this usually means a permissions issue or similar.
其中一个可能是网络错误"的可能原因:
One of these may be possible causes of "network error":
- DNS 问题
logoUrl
处的服务器不可用/错误- 错误的 HTTP 标头导致服务器忽略请求
- 浏览器中止 - 很可能是由于在获取完成之前导航到另一个页面
- DNS problems
- the server at
logoUrl
is unavailable / erroneous - Erroneous HTTP Headers causing server to ignore the request
- Browser aborted -- most likely due to navigation to another page before the fetch completes
相关文章