#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, а затем в свою функцию отправки, загрузите новые документы, а затем ответ?