【发布时间】:2019-05-21 15:32:12
【问题描述】:
我目前正在构建一个 Angular 7 应用程序,并尝试实现以下 HTTP API 调用场景:
请求应用程序令牌: https://(URL)/token
请求类型:POST
标题: 接受:application/json
请求正文:空
我在Angular应用中有一个Service类,代码如下:
import { HttpClient } from '@angular/common/http';
import { HttpHeaders } from '@angular/common/http';
requestToken函数实现如下:
requestToken() {
let headers = new HttpHeaders();
headers = headers.set('Accept', 'application/json');
return this.http.post(this.configUrl + '/token', headers);
}
然后在 App 中的组件之一中调用服务:-
getToken() {
this.service.requestToken().subscribe( res => {
console.log(res);
}, error => {
console.log(error);
});
}
当我运行应用程序时,我在控制台中收到 404 Not Found 错误。我使用 Postman 进行 API 调用,将“Accept”标头设置为“application/json”,然后将 url 指定为 https://(URL)/token,我成功获得了响应。但我无法通过 Angular 使其工作。
我还需要做些什么才能在 Angular 中正确设置标题吗?此外,我无法检查 API 服务器上是否启用了 CORS,因为这是我试图调用的第三方服务。
任何帮助将不胜感激。谢谢
【问题讨论】:
-
您查看了网络选项卡吗?实际提出的请求是什么?
-
这应该可以。听起来很傻,但检查变量“this.configUrl”,还要检查它的末尾是否没有“/”,因为“/token”已经有一个。
-
@jonrsharpe 请求类型显示为 POST
-
标题呢?一个明显的问题是 POST 有一个 body,您似乎没有考虑到它。
-
@GustavoMorais URL 是正确的.. 服务类中还有其他函数在同一 URL 发出 GET 请求,所有这些都有效..