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
添加到响应中。否则,出于安全考虑,您无法执行此操作。
我遇到了这个问题。我正在尝试使用 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
添加到响应中。否则,出于安全考虑,您无法执行此操作。