Axios не улавливает ошибку, даже не вводя ее в блок catch

#reactjs #axios

Вопрос:

Я пытаюсь получить код состояния ошибки, который был бы 413 в блоке перехвата Axios. Я пробовал разные решения, но у меня ничего не получалось. Не могли бы вы, пожалуйста, рассмотреть, что происходит не так.

 uploadNewDatDocuments(datId, files = [], additionalInfo = {}) {
    return new Promise((resolve, reject) => {
        let url = new URL(this.baseUrl   this.uploadDocument.replace('{id}', datId));
        Object.keys(additionalInfo).forEach(queryParam => url.searchParams.set(queryParam, additionalInfo[queryParam]));
        let formData = new FormData();
        files.forEach(file => formData.append('files', file));
        axios
            .post(url.toString(), formData, {
                headers: {
                    'Content-Type': 'multipart/form-data'
                }
            })
            .then(response => {
                resolve(response.data);
            })
            .catch(error => {
                console.log("error occurred")
                reject(error);
            }).finally(error=>{
                console.log(error);
            })
    });
}
 

Вот мой код действий.

 export function uploadNewDocuments(datId, additionalInfo = {}, attachments = [], comment = {}) {
return dispatch => {
    datService
        .uploadNewDatDocuments(datId, attachments, additionalInfo)
        .then(response => {
            const attachmentsIds = response.map(attachment => attachment.id);
            dispatch(
                DatCommentActions.addDatNewComment(datId, {
                    ...comment,
                    message: { ...comment.message, attachments: attachmentsIds }
                })
            );
        })
        .catch(error => {
            dispatch(MessageActions.showMessage({ message: error.response.data.message }));
            console.error(error);
        });
};
 

}

Ответ №1:

413 Слишком большой объект запроса на самом деле не является ошибкой, это неудачный ответ, и он не сработает, если в ответе нет фактической ошибки.

Что вы могли бы сделать, так это проверить response.status и на основе этого написать собственную обработку ошибок.

Комментарии:

1. Я не могу событие получить код состояния 413 В. тогда.

2. а внутри вашей сети в вашем браузере вы получаете 413? @Мехмудзаман

3. да, я получаю 413 на вкладке «Сеть».

4. можете ли вы показать мне результат, если утешите. войдите в ответ, затем в uploadNewDatDocuments, а затем в свою функцию отправки, загрузите новые документы, а затем ответ?