2016-07-04 62 views
14

我嘗試將授權標頭設置爲GET請求,以將用戶認證爲其他API。我正在使用Angular 2 RC1。 (我是一個初學者)。在獲取請求角度上設置標題2

getTest(){ 
    let authToken = localStorage.getItem('auth_token'); 
    let headers = new Headers({ 'Content-Type': 'application/json' }); 
    headers.append('Authorization', `Bearer ${authToken}`); 

    let options = new RequestOptions({ headers: headers }); 
    return this._http 
     .get(this._url,options) 
     .map(res => console.log(res)); 
    } 

我允許CORS在我的後端。

header("Access-Control-Allow-Origin: *"); 
header("Access-Control-Request-Headers: Content-Type, Authorization"); 

我的控制檯:

OPTIONS API/USERPROFILE/

的XMLHttpRequest不能加載/ USERPROFILE /。預檢響應具有 無效HTTP狀態碼406

My request headers

任何想法?

+0

在這裏看到完整的例子http://stackoverflow.com/a/34758630/5043867 –

回答

23

我認爲你需要的Accept頭的,而由於406個狀態碼...

let authToken = localStorage.getItem('auth_token'); 
let headers = new Headers({ 'Accept': 'application/json' }); 
headers.append('Authorization', `Bearer ${authToken}`); 

let options = new RequestOptions({ headers: headers }); 
return this._http 
    .get(this._url,options) 
    .map(res => console.log(res)); 

這允許你,告訴你在響應預期其內容類型的服務器...

Content-Type標題相當於指定您在請求中發送的內容的類型。在你的情況,不存在內容...

+0

我看,好像是第二個標題是現在的問題。沒有它,它工作正常,但與授權標題,它不工作,406狀態碼。任何建議? –

+0

也許你在請求選項中使用'withCredentials'屬性來'true'。它可以從RC2 ... –

2
autorization = { Authorization: 'Token adfasdfadf651f65asd1f65asdf' } 

this.http.get(url, { headers: autorization})