[英]Javascript REST API with body in GET
我在 Javascript(前端)工作,有一个同事在后端使用 NodeJS。 在调用 GET 请求时,他要求我将数据放入 body 中,但我不知道该怎么做。 (如果我将此代码用于 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);
});
您正在使用 HTTP GET 并发送正文。
如果要发送正文 (JSON),则应使用 PUT 和 POST。
最好的可能是:
method: "PUT"
如果您想知道选择哪一个,请查看这个问题:( REST 中的 PUT 与 POST )
如果你想发送一个带有正文的请求,那么你应该发出一个 POST 请求而不是一个 GET 请求。 GET 请求不能有其性质和主要目标的主体。 GET-request 的所有参数必须仅在 URL 本身中指明。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.