Angular 2以及带有Headers的Angular 4 HTTP服务调用显示403

时间:2017-08-02 08:23:15

标签: angular http http-headers angular2-services typescript2.0

我在我的应用程序中使用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()

中的API调用
 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

0 个答案:

没有答案