我在我的应用程序中使用angular 2 HTTP服务调用。在这个电话中我使用的是同事运行tomcat的机器的URL。此API调用需要一些标头作为凭据,我还在我的代码中添加了这些标头。相同的API在Postman 中使用相同的标头正常工作,但在从角度代码调用API时它不起作用。之前它为CORS显示错误,为了解决它我使用浏览器CORS extension,现在它显示我403即禁止访问。
这是我的代码:
导入部分:
import { Http, RequestOptionsArgs, Headers, RequestMethod, RequestOptions } from '@angular/http';
构造
constructor(private http: Http, private deviceService: Ng2DeviceService, private options: RequestOptions) { }
onInit()
ngOnInit() {
let headerObj: RequestOptionsArgs = {
method: RequestMethod.Get,
url: "http://PC-NAME:8091/gateway/brand/poc",
headers: new Headers({
"SM_USER": "USER-ID@domain.com",
"SM_USERUID": "USER#ID"
}
),
};
this.http.get("http://PC-NAME:8091/gateway/brand/poc", headerObj).subscribe(res => {
console.log(res.json())
})
}
我在上面的代码中嘲笑了凭据。我认为代码中存在错误或某些地方我丢失了一些内容,如Postman URL和标题工作正常的API不能错。如果有人可以帮助我,那将非常有帮助。谢谢。
我也尝试过Angular 4方式的HttpClient仍然没有用......问题仍然存在。这是角度4代码
this.httpClient.get("http://infom-lap120:8091/gateway/brand/poc", {
headers: new HttpHeaders({
"Content-Type": "application/json",
"SM_USER": "Sujay.Anjankar.consultant@nielsen.com",
"REPORT_SERVICE_TENANT_ID": "coop",
"SM_USERUID": "44f4c95c01dcb2ed99d30c30965072a0"
})
}).subscribe(
// Successful responses call the first callback.
data => { },
// Errors will call this callback instead:
err => {
console.log('Something went wrong!');
})
所有必要步骤与此doc完全相同:angular.io/guide/http#headers