【问题标题】:POST request works with curl and Postman, but fails with javascript fetchPOST 请求适用于 curl 和 Postman,但使用 javascript fetch 失败
【发布时间】:2021-09-21 23:10:30
【问题描述】:

我遇到了这个问题。我正在尝试使用 javascript 获取 POST 请求,但我收到的是 415 错误:

const getToken = async () => {
const response = await fetch('https://thebetter.bsgroup.eu/authorization/signIn', {
    method: 'post',
    mode: 'no-cors',
    headers: {
        'Content-Type': 'application/json',
        accept: 'application/json',
    },
    body: {},
});
const data = response.json();
console.log(data);

};

使用下面的 curl 命令,我得到了正确的响应。和邮递员一样。

curl -X POST "https://thebetter.bsgroup.eu/Authorization/SignIn" -H  "accept: application/json" -H  "Content-Type: application/json" -d "{}"

这里有什么问题?

【问题讨论】:

  • 你能澄清错误是什么吗? 415 可以很宽泛。将您的 fetch 包装在 try/catch 块中,并注意 catch 语句中的错误
  • 错误是:main.js:3 POST thebetter.bsgroup.eu/authorization/signIn net::ERR_ABORTED 415

标签: javascript post fetch


【解决方案1】:

这是因为您使用的是mode: 'no-cors'

对于 no-cors,您只能执行此应用程序类型的帖子:

  • text/plain
  • application/x-www-form-urlencoded
  • multipart/form-data

由于您尝试执行application/json,因此浏览器将覆盖text/plain

您可以从thebetter.bsgroup.eu 访问服务器吗?如果是这样,只需从请求中删除 mode: no-cors 并将 'Access-Control-Allow-Origin': [REQUEST'S-HOST].com 添加到响应中。否则,出于安全考虑,您无法执行此操作。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-22
    • 2015-09-19
    • 2022-01-21
    • 2017-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多