考虑以下代码。它只是一个带axios
库的简单http发布请求。
axios.post('http://localhost/users', this.state)
.then(function(response) {
if (response.status == 201) {
browserHistory.push('/features');
}
})
.catch(function(error) {
console.log(error);
})
如果用户向输入输入了错误的数据,服务器的响应将保留信息,例如
@
标志 但很遗憾,如果状态为400 bad request
,我就不知道如何进入该回复。它只显示错误,但我无法得到回复。
如果响应状态为201
,则会正确显示响应。但是在400
的情况下,即使我更改条件并添加else if (response.status == 400) { console.log(response) }
,它也不会显示响应。
任何帮助都非常感谢。
答案 0 :(得分:7)
只需查看axios文档,看起来应该在错误对象中公开响应(即console.log(error.response)
)。
有关响应代码超出2xx时提供的不同信息的详细信息:https://github.com/mzabriskie/axios#handling-errors
答案 1 :(得分:1)
您需要记录响应的数据:
axios.post('http://localhost/users', this.state)
.then(function(response) {
browserHistory.push('/features');
})
.catch(function(error) {
console.log(error.response.data); // this is the part you need that catches 400 request
});