在 Axios 中收到 400 个错误请求,但 Postman 状态为 200

Posted

技术标签:

【中文标题】在 Axios 中收到 400 个错误请求,但 Postman 状态为 200【英文标题】:Getting 400 bad request in Axios but in Postman status 200 【发布时间】:2021-01-21 20:38:00 【问题描述】:

我正在尝试使用 axios 请求 Power BI API。

var configReportInfos = 
    method: 'get',
    url: `https://api.powerbi.com/v1.0/myorg/groups/$process.env.GROUP_ID/reports/$process.env.DASHBOARD_ID`,
    headers: 
        'Content-Type': 'multipart/form-data',
        'Authorization': 'Bearer ' + tokenResponse.accessToken
    ,
    data: 
;

let reportinfos
try 
    reportinfos = await axios(configReportInfos)
    tokenResponse['reportInfos'] = reportinfos


catch (error) 
    console.log(error);
;

实际上我遇到了这个错误

请求失败,状态码为 400"

但奇怪的是,我在 Postman 中的状态为 200。

我使用的是同一个令牌。

【问题讨论】:

【参考方案1】:

我遇到了同样的问题。当我将应用程序中的内容类型切换为 application.json 时,一切正常。

【讨论】:

我刚刚注意到它是一个 GET 请求。我可能错了,但我认为您不需要为 GET 请求设置标头。检查:zetcode.com/javascript/axios 应该只是:axios.get('webcode.me').then(resp => console.log(resp.data); );或者你可以使用 async/await,你在这个页面上也有例子。 即使删除Content_Type我也会遇到同样的错误 尝试使用我在之前评论中提到的。尝试使用 axios.get(url) 而不是在 axios 中传递完整的配置。检查授权设置是否一切正常。如果这仍然不起作用,那么我不知道还有什么可能导致问题。 对不起。我不知道还有什么可能导致这个问题。如果您设法找到解决方案,请更新此帖子,因为我想知道问题出在哪里。【参考方案2】:

我遇到了同样的问题(不是在 Axios 中)并且挣扎了几个小时。 我能够从邮递员进行 API 调用,但从我的 java 代码中我得到了 400。 原来,这是一个内容问题。我的请求正文包含一些西里尔文内容,需要在发送前对其进行编码。 Postman 默认执行此操作,因此请求通过并以 200 响应

【讨论】:

以上是关于在 Axios 中收到 400 个错误请求,但 Postman 状态为 200的主要内容,如果未能解决你的问题,请参考以下文章

axios.post 显示错误“请求失败,状态码为 400”,但邮递员发布了相同的数据

发生错误 400(错误请求)时,使用 Axios 从 POST 捕获返回 json

在 Express.js 上使用 Axios 向 Spotify API 发出 POST 请求时出现错误 400

axios.post 返回 400 React Native 的错误请求

在改造中收到错误代码 400 错误请求,但适用于邮递员

在第二个 axios api 调用上获取错误 400 错误请求