2017-11-04 187 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' 
});