Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从axios到Django Rest服务器的POST信号的错误处理_Django_Reactjs_Django Rest Framework_Axios - Fatal编程技术网

从axios到Django Rest服务器的POST信号的错误处理

从axios到Django Rest服务器的POST信号的错误处理,django,reactjs,django-rest-framework,axios,Django,Reactjs,Django Rest Framework,Axios,我使用React+Django,当用户从前端注册时,React中的axios向Django发送POST信号,如果表单无效,则显示下面的响应 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)

我使用React+Django,当用户从前端注册时,React中的axios向Django发送POST信号,如果表单无效,则显示下面的响应

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)
若我在Django browsable API或Postman中使用无效字段发布相同的帖子,我会得到下面的错误,向用户显示错误是很有用的

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

如果用户在表单中和表单提交后键入无效的详细信息,如何从axios获得相同的错误消息

请注意,如果用户在表单中键入正确的信息,axios将提供足够的详细信息

轴心函数

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

很明显,这两种情况下的响应完全相同,一个状态为400(错误请求)的HTTP响应,以及您在postman中看到的身体。您的问题与Axios如何为您提供响应有关。如果您想在Axios收到错误响应时访问响应正文,则可以在
error.response.data
中找到它:

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

很明显,这两种情况下的响应完全相同,一个状态为400(错误请求)的HTTP响应,以及您在postman中看到的身体。您的问题与Axios如何为您提供响应有关。如果您想在Axios收到错误响应时访问响应正文,则可以在
error.response.data
中找到它:

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