【问题标题】:fetch function returns 400 bad request error for content-type 'application/x-www-form-urlencoded'fetch 函数返回内容类型 'application/x-www-form-urlencoded' 的 400 错误请求错误
【发布时间】:2020-06-01 16:42:12
【问题描述】:

之前有人问过这个问题,但我已经尝试过这些解决方案,我会 一路解释​​。

任务:
我想将数据发送到内容类型为“application/x-www-form-urlencoded”的api。

问题:
该 URL 在 Postman 中工作正常,并返回正确的响应。当我通过我的 Reactjs 应用程序尝试相同的正文参数时,它以 400 bad request 错误响应。

我尝试过的:

myBody:{
grant_type:"XYZ",
client_id:"XYZ"
}
var request = {
            headers: {
                'Content-Type': 'application/x-www-form-urlencoded',
            },
            method: "POST",
            body:myBody
        };

然后我拿这样的东西。

const data = yield fetch(complete_url,request);

我还尝试将 myBody 组合为 formData 。仍然给出同样的错误。

抱歉,由于限制,我没有给出 URL。我正在寻找我可能犯的错误的可能性。

【问题讨论】:

标签: reactjs fetch http-status-code-400


【解决方案1】:

'Content-Type': 'application/x-www-form-urlencoded',
您的请求正文应遵循一定的规则 (https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/POST)。
the keys and values are encoded in key-value tuples separated by '&', with a '=' between the key and the value,
例如:
grant_type =value1&client_id=value2。 所以我建议它在调试器 -> 网络选项卡中的样子。

如果请求正文没有问题。然后你应该检查是否有任何特殊字符。 您还需要转义符号和特殊字符。

【讨论】:

  • 我试过了,但没有用。我真的认为它应该工作。我不知道为什么它不工作
  • 你可以将邮递员和javascript发出的请求都复制为curl吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-03-22
  • 2021-02-03
  • 1970-01-01
  • 2015-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多