【问题标题】:How to hide console status error message while fetching in React js?在 React js 中获取时如何隐藏控制台状态错误消息?
【发布时间】:2019-03-19 07:37:26
【问题描述】:

在我的 React 应用程序中,我使用 fetch() 从我的 API 获取数据,_callAPI() 函数获取 domain 参数并在我的数据库中存在该域的网站时调用 API。如果存在,则返回网站的对象,否则返回 500。因此,在使用 fetch() 之前,我无法确定网站是否存在。问题是每次 fetch() 没有找到任何东西时,它都会抛出以下内容:

container.jsx:25 获取 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));
  };

【问题讨论】:

    标签: reactjs fetch


    【解决方案1】:

    如果要静音浏览器错误:

    很遗憾,这是无法做到的,因为这种类型的消息在 控制台由 chrome 本身打印。压制这种类型的消息 多年来一直争论不休,但共识似乎是 消息是可取的

    Credits.

    如果您想在控制台中静音未处理的错误

    您可以随时在前端将错误静音,如下所示:

    .catch(err => { const mute = err })
    

    但最好以某种方式通知用户有关错误而不采取此类变通办法。

    此外,最好让您的服务器在响应中返回错误消息,然后在前端继续处理。

    查看您的情况,服务器响应状态码 400 可能会更好。以下是 HTTP 错误代码及其用途:

    • 4xx(客户端错误):请求包含错误语法或无法 已完成
    • 5xx(服务器错误):服务器未能完成 显然有效的请求

    【讨论】:

    • 错误信息来自fetch(),而不是来自catch()。我必须说明这一点,对此感到抱歉。另外,无论我是否返回 500,它都会返回 500 状态。这不是我的意图
    • 很遗憾无法实现。我已经更新了我的答案。
    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 2014-02-01
    • 2022-09-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-31
    相关资源
    最近更新 更多