Amo*_*wal 7 javascript post axios
我正在从带有响应正文的后端代码发送状态代码422,其中包含错误的描述。我使用axios发布如下,以发布请求:
post: function(url, reqBody) {
const request = axios({
baseURL: config.apiUrl,
url: url,
headers: {
'Content-Type': 'application/json',
'Authorization': sessionStorage.getItem('token')
},
method: 'POST',
data: reqBody,
responseType: 'json'
});
return request
.then((res) => {
return res;
})
.catch((error) => {
console.log(error);
return error;
})
}
Run Code Online (Sandbox Code Playgroud)
问题是当后端返回错误代码422时,我正在捕获的错误对象没有有关响应主体的信息。有什么方法可以检索错误文本?
小智 17
AXIOS 错误响应的“主体”取决于请求的响应类型。
如果您想了解有关此问题的完整详细信息,可以查看此博文:如何捕获 AXIOS 中的错误正文。
总之,AXIOS 将根据错误返回 3 个不同的主体:
错误的请求,我们实际上在我们的请求中做了一些错误的事情(缺少参数,格式错误),即实际上并没有被发送。发生这种情况时,我们可以使用 访问信息error.message。
axios.get('wrongSetup')
.then((response) => {})
.catch((error) => {
console.log(error.message);
})
Run Code Online (Sandbox Code Playgroud)
错误的网络请求:当我们尝试访问的服务器根本没有响应时会发生这种情况。这可能是由于服务器关闭或 URL 错误造成的。在这种情况下,我们可以使用 访问请求的信息error.request。
axios.get('network error')
.then((response) => {})
.catch((error) => {
console.log(error.request );
});
Run Code Online (Sandbox Code Playgroud)
错误状态:这是最常见的请求。任何以不同于 200 的状态返回的请求都可能发生这种情况。它可能是未经授权的、未找到的、内部错误等。发生此错误时,我们可以通过访问以下代码段中指定的参数来掌握请求的信息。对于数据(如上所述),我们需要访问error.response.data.
axios.get('errorStatus')
.then((response) => {})
.catch((error) => {
console.log(error.response.data);
console.log(error.response.status);
console.log(error.response.headers);
})
Run Code Online (Sandbox Code Playgroud)
Joe*_*dee 11
我有同样的问题,答案(按照Axios> = 0.13)是专门检查error.response.data:
axios({
...
}).then((response) => {
....
}).catch((error) => {
if( error.response ){
console.log(error.response.data); // => the response payload
}
});
Run Code Online (Sandbox Code Playgroud)
有关更多详细信息,请参见此处。
Yay*_*ano 10
对于那些使用 await/async 和 Typescript 的人
try {
const response = await axios.post(url, body)
} catch (error) {
console.log(error.response.data);
}
Run Code Online (Sandbox Code Playgroud)
小智 8
对于本机反应,它对我有用
api.METHOD('endPonit', body)
.then(response => {
//...
})
.catch (error => {
const errorMessage = JSON.parse(error.request.response)
console.log(errorMessage.message)
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4421 次 |
| 最近记录: |