Обработка ошибок с сигналами POST от ax ios до Django Rest Server - PullRequest
1 голос
/ 30 мая 2020

Я использую React + Django, когда пользователь регистрируется из внешнего интерфейса, ax ios в React отправляет сигнал POST на Django, если форма недействительна, он показывает ниже ответ

xhr.js:178 POST http://localhost:8000/account/users/ 
signup.js:120 Error: Request failed with status code 400
    at createError (createError.js:16)
    at settle (settle.js:17)
    at XMLHttpRequest.handleLoad (xhr.js:61)

Если я выполните тот же POST с недопустимыми полями в Django просматриваемом API или почтальоне Я получаю ошибку ниже, и полезно отображать ошибку для пользователей

{
    "email": [
        "This field may not be blank."
    ],
    "username": [
        "This field may not be blank."
    ]
}

Если пользователь вводит недопустимые данные в форме и после отправки формы, как можно Я получаю такое же сообщение об ошибке от ax ios?

Обратите внимание, что если пользователь вводит правильную информацию в форме, ax ios отвечает с достаточной информацией.

Ax ios function

 axios.post('/account/users/',{data}).then(res=>console.log(res)).catch(err=>console.log(err)

1 Ответ

1 голос
/ 31 мая 2020

Это пустяки, чтобы сказать, что ответ в обоих случаях абсолютно одинаковый: ответ HTTP со статусом 400 (неверный запрос) и с телом, которое вы видите в почтальоне. Ваша проблема связана с тем, как Ax ios дает вам ответ. Если вы хотите получить доступ к телу ответа, когда Ax ios получает ответ об ошибке, он у вас в error.response.data:

axios.post('/account/users/'{data})
.then(res=>console.log(res))
.catch(err=>console.log('Response body', err.response.data)
...