React.js:尽管http响应为400,但仍收到错误消息

问题描述 投票:2回答:1

我有一个场景,如果我将重复的记录保存在DB中,则模式应显示确切的错误消息

使用axios的POST请求:

    saveBankMaintenance(optionsBrstn){
        return axios.post(`${API_URL_SAVE_BANK_MAINTENANCE}`, 
            [optionsBrstn]
    )

我正在使用以下方式呼叫此POST请求:

const saveBrstn = useCallback(() => {
    ClientMaintenanceService.saveBankMaintenance(optionsBrstn)
    .then((response) => {
      if(response.data.success === "Success"){
        setShowBrstnSaveSuccessModal(true);
        setShowBrstnSaveFailedModal(false);
      }
    }).catch((err) => {
        setShowBrstnSaveSuccessModal(false);
        setShowBrstnSaveFailedModal(true);
    })
  });

保存成功就可以了

但是,如果失败,它将直接进入catch块,并且我无法在状态上设置错误消息

我是否可以通过http状态响应400来获取json响应(包含错误消息)?

TIA

reactjs post
1个回答
1
投票

您可以在error属性的response对象中获得响应数据。

尝试一下。

const saveBrstn = useCallback(() => {
    ClientMaintenanceService.saveBankMaintenance(optionsBrstn)
        .then((response) => {
            if (response.data.success === "Success") {
                setShowBrstnSaveSuccessModal(true);
                setShowBrstnSaveFailedModal(false);
            }
        }).catch((err) => {
            console.log(err.response.data); // you can get the response like this
            console.log(err.response.status); // status code of the request

        })
});
© www.soinside.com 2019 - 2024. All rights reserved.