POST 请求适用于 curl 和 Postman,但在 javascript 获取时失败

POST request works with curl and Postman, but fails with javascript fetch

我遇到了这个问题。我正在尝试使用 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 命令我得到了正确的响应。与 Postman 相同。

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

这里有什么问题?

这是因为您正在使用 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 添加到响应中。否则,出于安全考虑,您无法执行此操作。