Javascript JS Axios-发生错误时如何获取响应正文?
我希望能够从Axios错误捕获中获取响应主体 我使用的是axios v0.18.0 我的axios代码如下所示:Javascript JS Axios-发生错误时如何获取响应正文?,javascript,error-handling,axios,Javascript,Error Handling,Axios,我希望能够从Axios错误捕获中获取响应主体 我使用的是axios v0.18.0 我的axios代码如下所示: let service = axios.create({ baseURL: "https://baseUrl.azurewebsites.net", responseType: "json" }); service.defaults.headers.common['authori
let service = axios.create({
baseURL: "https://baseUrl.azurewebsites.net",
responseType: "json"
});
service.defaults.headers.common['authorization'] = `Bearer ${token}`;
service.post("/api/method", params).then(result => {
console.log('success',result);
}).catch(error=>{
console.log('error');
console.log(error);
});
根据我的输入,我的API调用返回了我预期的400错误。所以,我要抓住机会了。但是,我无法检索API调用返回的错误消息
我尝试过使用console.out(error.response.data),但它返回null
我已经使用Postman验证了API调用是否在响应体中返回错误消息,因此API不是问题所在
let options = {
baseURL: "http://www.mocky.io",
responseType: "application/json"
};
//service.post("/v2/5c06f6be3000009600d25953",{}).then(result => {
axios.post("/v2/5c06f6be3000009600d25953",null,options).then(result => {
console.log('success', result);
}).catch(error => {
console.log(error.response);
});
我遗漏了什么?我用它进行了测试,错误消息确实在error.response.data
中返回
const axios = require('axios');
// http://www.mocky.io/v2/5c06f6be3000009600d25953 (the mock api to call, it always returns 400 with an error message)
let service = axios.create({
baseURL: "http://www.mocky.io",
responseType: "json"
});
service.post("/v2/5c06f6be3000009600d25953").then(result => {
console.log('success', result);
}).catch(error => {
console.log(error.response.data);
});
上面的代码打印出oops,请求错误返回的代码>
编辑:很明显,您描述的问题可能是由于多种原因造成的。请参阅问题。以下是我为解决此问题所做的操作
let options = {
baseURL: "http://www.mocky.io",
responseType: "application/json"
};
//service.post("/v2/5c06f6be3000009600d25953",{}).then(result => {
axios.post("/v2/5c06f6be3000009600d25953",null,options).then(result => {
console.log('success', result);
}).catch(error => {
console.log(error.response);
});
主要修改是将“responseType”更改为“application/json”
谢谢大家的帮助。谢谢你的留言。我运行了你的代码,但是没有看到“Ooops,bad request!”被返回;我得到“空”。我也读了你提到的链接。jacurtis()有一条评论说必须查看error.response.data或error.response.data.data,但它们都是非null的。奇怪。。。我犯了一个错误,同样的问题也发生了。但如果我在本地运行节点,它会工作。要修改我之前的评论。。。我的意思是error.response.data和error.response.data.data都是空的。因此,似乎没有一种直接的方法来获得错误响应。