带有GET中的主体的Javascript REST API



我在Javascript(前端(工作,有一位同事在后台使用NodeJS。当调用GET请求时,他要求我将数据放入正文,但我不知道如何做到这一点。(如果我将此代码用于POST请求,它会正常工作(。你能告诉我这是否可能以及如何做到吗?他说这是可能的,但我在谷歌上搜索了很多,找不到正确的方法。我得到的错误:"未能对"Window"执行"fetch":具有GET/HEAD方法的请求不能具有正文">

let URL = "http://localhost:3000/verifyUser";
let token = "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI2NjJDMTRBNk";

fetch(URL, {
method: request,
mode: 'cors',
body: JSON.stringify({
user: 'Carlos6',
password: '543534543',
email: "algo6@gmail.com"
}),
headers: {
'Accept' : 'application/json',
'Content-type': 'application/json; charset=UTF-8',
'auth-token': token
}
}).then(function (response) {
if (response.ok) {
return response.json();
}
return Promise.reject(response);
}).then(function (data) {
console.log(data);
}).catch(function (error) {
console.warn('Something went wrong.', error);
});

您正在使用HTTPGET并发送正文。

如果您想发送一个主体(JSON(,您应该使用PUT和POST。

最好的可能是:

  • 将客户端代码更改为method: "PUT"
  • 更改服务器以访问PUT请求

如果你想知道该选择哪一个,请看这个问题:(REST中的PUT与POST(

如果您希望发送带有正文的请求,那么您应该发出POST请求,而不是GET请求。GET请求的性质和主要目标不能有正文。GET请求的所有参数必须仅在URL本身中指示。

最新更新