在我的 React 应用程序中,我使用fetch()
从我的 API 获取数据,_callAPI()
函数获取domain
参数并调用 API,如果我的数据库中存在域的网站。如果存在,则返回网站的对象,否则返回 500。所以,在我使用 fetch(( 之前,我无法弄清楚该网站是否存在。问题是每次 fetch(( 找不到任何东西时,它都会抛出以下内容:
container.jsx:25 GET http://localhost:3000/boutiques/detail/?q=testdomain.com 500(内部服务器错误(
当它找不到很多网站时,控制台日志中会包含该错误消息。有没有办法在获取时忽略这种消息?
fetch()
_callApi = () => {
const { domain } = this.props;
return fetch(`/boutiques/detail/?q=${domain}`)
.then(response => {
if (response.status === 500) {
return 500;
}
return response.json();
})
.then(json => json)
.catch(err => console.log(err));
};
如果要将浏览器错误静音:
不幸的是,这无法完成,因为这种类型的消息在 控制台由 Chrome 本身打印。抑制此类消息 已经争论了多年,但共识似乎是这个 消息是可取的
学分。
如果要在控制台中静音"未处理"错误:
您始终可以在前端将错误静音,如下所示:
.catch(err => { const mute = err })
但是最好以某种方式通知用户有关错误并且不执行此类解决方法。
此外,您的服务器最好在响应中返回错误消息,并且在前端继续执行。
查看您的情况,服务器最好使用状态代码 400 进行响应。以下是 HTTP 错误代码及其用途:
- 4xx(客户端错误(:请求包含错误的语法或无法 实现
- 5xx(服务器错误(:服务器无法完成 显然有效的请求