Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.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
Javascript JS Axios-发生错误时如何获取响应正文?_Javascript_Error Handling_Axios - Fatal编程技术网

Javascript JS 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

我希望能够从Axios错误捕获中获取响应主体

我使用的是axios v0.18.0

我的axios代码如下所示:

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都是空的。因此,似乎没有一种直接的方法来获得错误响应。