2016-12-07 78 views
0

有涉及同一概念的各種問題,但不知何故,我無法找出一個簡單的HTTP GET與角2角2 HTTP GET使用基本身份驗證調用

打電話我都試過同樣的服務有郵遞員和它的工作,但不是一個角度的服務。

我的代碼如下所示:

Service.js

let headers = new Headers({ 'Authorization': 'Basic ' + btoa('[email protected]:password') }); 
let options = new RequestOptions({ headers: headers }); 

return this.http.get(Config.Api.GetNavbar, options).map((res: Response) => res.json()); 

我得到即使我設置標頭一個401未經授權錯誤。

任何幫助?

+0

如果它適用於郵遞員,那麼使用Angular也很容易,只要確保發送相同的郵件頭等。 – dfsq

+0

是的,我添加了相同的標題。我錯過了什麼嗎? –

+0

確保您提供給API的'Authorization'標頭值是有效的,因爲您正在獲取'未授權錯誤',這意味着在服務器端標頭值被選中且其無效 – ranakrunal9

回答

2

當我使用Angular進行我的第一次REST調用時,我正面對同樣的行爲 - 它與Postman一起工​​作,但沒有與Angular一起工作。

某些瀏覽器在「真正的」AJAX調用之前進行所謂的「預檢」調用,並且第一次調用導致了401未經授權的響應。問題是我不允許OPTIONS頭沒有身份驗證。 OPTIONS標題的處理也在限制區域,但驗證信息丟失,所以服務器發回給我一個401 Unauthorized。

最後,解決方案是處理限制區外的OPTIONS請求。因此,客戶端現在收到OPTIONS頭部請求的確定並繼續進行「真實」調用。

由於我已經調整了服務器端的請求處理,所有事情都按預期工作。