是否需要检查axios响应状态是否为200?

guz6ccqo  于 2022-11-23  发布在  iOS
关注(0)|答案(1)|浏览(281)

是否需要检查axios.get()响应状态是否为200?

useEffect(() => {
  const fetch = async () => {
    try {
      const response = await axios.get('/api');
      if (response.status === 200) {
        setState(response.data);
      }
    } catch (error) {
      console.error(error);
    }
  };
  fetch();
}, []);

或者我可以这么做

useEffect(() => {
  const fetch = async () => {
    try {
      const { data } = await axios.get('/api');
      setState(data);
    } catch (error) {
      console.error(error);
    }
  };
  fetch();
}, []);

如果是,最佳做法是什么?

sqyvllje

sqyvllje1#

通常你不需要检查,但从技术上讲,这完全取决于你的团队如何解释HTTP协议。
尽管不鼓励这样做,但我看到过一些团队完全无视HTTP状态代码的标准语义,在几乎所有情况下都盲目地将状态代码设置为200,然后在数据负载中编码成功/失败状态,例如data.success == true or false。在这种情况下,检查状态代码毫无意义。
Axios只是一个通过HTTP进行消息交换的库。真实的有用的是HTTP协议。您甚至可以自定义Axios来确定什么情况被认为是“错误”,如this question中所示。最好咨询您的后端同事,了解他们的服务器响应约定,并在您的团队中达成共识。

相关问题