我在访问返回 400 错误的 JSON 对象时遇到一些困难。
我的 Vue 应用程序的响应只有错误 400,没有 JSON 数据。
Error: Request failed with status code 400
at createError (createError.js?16d0:16)
at settle (settle.js?db52:18)
at XMLHttpRequest.handleLoad (xhr.js?ec6c:77)
使用 Postman 的同一响应返回错误代码和消息。
如何在我的 Vue 应用程序中访问 JSON 响应?
{
"error": "Email already exists!"
}
Express API 代码:
res.status(400).json({ error: '电子邮件已存在!' });
我的Vue代码:
handleSubmit () {
this.$http.post('http://localhost:3000/users/create', this.user)
.then(response => {
const status = JSON.parse(response.status)
if (status === 200) router.push('/users')
})
// why doesn't the json response show
.catch(err => {
console.log(err)
})
}
请您参考如下方法:
您必须使用response
属性或error
对象:
handleSubmit () {
this.$http.post('http://localhost:3000/users/create', this.user)
.then(response => {
// if on server side you use only status 200, here it's always true
if (response.status=== 200) {
router.push('/users');
}
})
.catch(error => {
// error.response can be null
if (error.response && error.response.status === 400) {
console.log(error.response.data.error);
}
})
}
See axios 错误处理文档