【问题标题】:Getting 400 bad request in Axios but in Postman status 200在 Axios 中收到 400 个错误请求,但 Postman 状态为 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。

我使用的是同一个令牌。

【问题讨论】:

    标签: axios powerbi postman powerbi-embedded


    【解决方案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 响应

    【讨论】:

      猜你喜欢
      • 2021-10-13
      • 1970-01-01
      • 2019-09-12
      • 1970-01-01
      • 2021-10-01
      • 2022-07-15
      • 1970-01-01
      • 2021-01-12
      • 2013-02-18
      相关资源
      最近更新 更多