使用Angular 5 HttpClient获取数据

时间:2018-03-06 10:51:30

标签: javascript angular

我正在尝试使用Angular提供的HttpClient从rest端点加载数据。有问题的端点使用令牌来授权用户。

    getData() {
     if (this.token) {
        const httpOptions = {
        headers: new HttpHeaders({
          'Content-Type':  'application/json',
          'Authorization': 'Bearer' + ' ' + this.token
       })
     };
     this.http.get('https://some url', httpOptions).subscribe((res) => {
       console.log(res);
     }, (error) => {
       console.log(error);
     });
     } else {
       this.empty_token = true;
     }
   }

尝试执行此操作时出现以下错误: 预检的响应包含无效的HTTP状态代码401。

但是,相同的代码适用于某些适用于“http”的演示网址,而不适用于“https”

我尝试使用Postman或任何其他RestClient请求使用相同的内容并且它工作正常。

2 个答案:

答案 0 :(得分:0)

如果调用网址是http,则无法正常工作。 这可以帮助您https://angular.io/api/platform-browser/DomSanitizer

或试试这个

private httpOptions = new Headers({ 'Content-Type': 'application/x-www-form-urlencoded', 'Authorization': 'Bearer ' + this.token});

答案 1 :(得分:0)

你应该添加

"proxies": [
    {
      "path": "/v1",
      "proxyUrl": "'https://some url'"
    }

到你的项目。

您可以查看此链接https://github.com/mgechev/angular-seed/wiki/Add-a-Proxy-to-browsersync