2017-11-04 161 views
1

美好的一天,我建立一个简单的应用程序,只有一个令牌获取API数据,但我有未经授权的访问错误...Angular 2 | 401未授权

有人可以帮助我弄清楚为什么我收到此错误?

401未授权

Error Message

import { Component, ViewEncapsulation } from '@angular/core'; 
import { Http, Response } from '@angular/http'; 
import 'rxjs/add/operator/map'; 

    @Component({ 
     selector: 'app-root', 
     templateUrl: './app.component.html', 
     styleUrls: ['./app.component.css'], 
     encapsulation: ViewEncapsulation.None, 
    }) 
    export class AppComponent { 

    data: any = {}; 

     constructor(private http: Http) { } 

     ngOnInit() { 
      this.getVoicepicData(); 
      this.getData(); 
     } 

     getData(){ 
      let headers = new Headers({ 
       'Token': "TOKEN HERE", 
       'Content-Type': 'application/json' 
      }); 

      return this.http.get('http://apiURL.com/api/voice/get-voice-pick- 
      file/', { headers: headers }) 
       .map((res: Response) => return res.json()) 
     } 

     getVoicepicData() { 
      this.getData().subscribe(data => { 
       console.log(data) 
       this.data = data 
      }) 
     } 

    } 

我如何处理这个问题?有人能帮我解决这个问题吗?我能正确设置令牌吗?

编辑: 缺少import { Headers } from '@angular/http';

+0

就不可能有401多种原因:令牌可以过期,无效,损坏,空,等于是让我们从简单的开始。我建议你检查令牌是否到达服务器端? –

+0

是的,它确实得到了服务端,我用它与jquery和它的工作正常。它只是当我使用angular2它似乎并没有工作。 –

+0

尝试新的RequestOptions({headers:headers})而不仅仅是{headers:headers} –

回答

0

试试这个:

let headers = new Headers({ 
       'Authentication': "bearer <space><TOKEN HERE>", 
       'Content-Type': 'application/json' 
});