我在服务器上用GET方法设置了一个API,通过给它一个授权令牌和一个指定代码的主体,返回一个具有相同代码的对象的信息(它是一个序列号)。
getInfoMatricola(matricola: string,_token: string){
fetch(this.url, {
method: 'GET',
headers: {
Authorization: `Bearer ${_token}`
},
body: ` lookFor":"${matricola} `,
})
.then((response) => response.json())
.then((data) => {
console.log('Success:', data);
})
.catch((error) => {
console.error('Error:', error);
});
}
}`
它在控制台日志中显示了这个错误
Failed to execute 'fetch' on 'Window': Request with GET/HEAD method cannot have body.
我也尝试过使用http.get<any>(mycode)
,但我认为它不接受body,因为它给了我错误。
1条答案
按热度按时间wj8zmpe11#
正确的话,您应该使用
query params
或resource params
。下面是一些示例:查询参数
资源参数
要添加额外的标题,只需向选项对象添加
您可以在这里找到文档:https://angular.io/api/common/http/HttpClient
此外,在大多数IDE中,您可以通过点击CMD + B(在Mac上)打开源代码,因此您将获得以下内容:
如果你真的需要添加一些body,你可以使用
http.request
,这样你就可以添加body到你的GET请求中,但是它可能无法正常工作。另外,与其添加JWT到请求中,更好的做法是创建一个拦截器。在Angular DELETE中也不接受主体,但可以使用以下命令省略:
你可以用get做同样的事情--但是对于chrome来说,它不会通过。https://developer.mozilla.org/en-US/docs/Web/HTTP/Methods/GET