go - 你如何在 JS catch 中从 Go 服务器进行 fetch 调用?
问题描述
我有一个 JS 前端和一个 Go 后端。在服务器上,当我响应错误时,我使用
http.Error(w, `{"err":"bad request"}`, http.StatusBadRequest)
在我的前端,我有
fetch(`${API_URL}/dosomething`)
.then(res => res.json())
.then(data => console.log('data', data))
.catch(err => console.log('err', err));
错误发送过来就好了,但是 JS 中的 fetch 调用没有捕获。该err
对象只是被传递给.then(data => console.log('data', data))
. 我应该在我的服务器上做什么来使 fetch 调用捕获一个err
值的字符串(所以我不必用 json 响应)。
解决方案
当遇到网络错误
fetch()
或 CORS 在服务器端配置错误时,promise 将拒绝,尽管这通常意味着权限问题或类似问题——例如,404 并不构成网络错误。对成功的准确检查将包括检查承诺是否已解决,然后检查该属性的值是否为真。TypeError
fetch()
Response.ok
推荐阅读
- python - win32com 解析 Outlook 2010 时。显示实例而不是文件夹/消息的名称/主题
- javascript - JavaScript + PHP & SSE - 服务器发送事件 & MySQL
- node.js - mongodb 和 expressjs 集合发现太慢了
- rest - Accurev 是否像 GIT、JIRA、Jenkins 等其他 DevOps 工具一样公开 Rest API?
- vb.net - VB.net 检测鼠标在表单外点击
- django - 在 Django 中使用多个注解
- python - 比较两个数据框并根据掩码值向数据框添加新列
- php - 在 wordpress 帖子中更改帖子 ID
- angular - ag-grid 无限滚动带来加载中的所有数据
- angularjs - 如何从控制器监视服务方法?