2015-07-28 50 views
5

我在Angularjs 1.3中擁有Java REST服務和消費者。服務基於JSON並期望BASIC身份驗證(用戶名 - 密碼)。 在AgJs 1.3中,我使用Base64工廠代碼(在谷歌上找到)從用戶名和密碼創建基本身份驗證令牌,並且能夠使用成功的服務。如何在Angularjs 2.0中使用基本身份驗證調用REST服務

我讀AgJs 2.0文檔中的HTTP類,但我沒有找到任何有關基本認證的信息。

任何人都可以提供示例代碼來使用基於BASIC認證的Angularjs 2.0中的REST服務嗎?

在此先感謝!

最好的問候!

我AgJs 1.3代碼:

VAR URL = 「http://x.x.x.x:xxxx/data/」 +號碼;

$http.defaults.headers.common['Authorization'] = 'Basic ' + Base64.encode('username' + ':' + 'password'); 
$http.defaults.headers.common['Content-Type'] = 'application/json'; 

$http({ method: 'GET', url: url }). 
     success(function (data, status, headers, config) { 
      alert(data); 
     }). 
     error(function (data, status, headers, config) { 
      alert("error: " + data); 
     }); 
+0

我不知道你是否與本[問題](https://github.com/angular/angular/issues/3266)中的用戶相同,但如果它可以幫助其他人... –

+0

有看看[這個答案](http://stackoverflow.com/a/34465070/995671)到一個類似的問題。 –

回答

0

取決於如果您正在使用新的Angular2 http API,或外在的東西像fetch

如果你可以做這樣的事情,只記得有帶包後面:

myHeaders = { 
     'Accept': 'application/json', 
     'Content-Type': 'application/json', 
     'Authorization': 'Basic ' + Base64.encode('username' + ':' + 'password') 
    } 
return Zone.bindPromiseFn(fetch)(
      url, 
      { 
       method: 'GET', 
       headers: myHeaders, 
       body: JSON.stringify(myData) 
      }).then(
       r => {return r.json()} 
     ); 
1

我剛剛發表的帖子從angular2到有基本身份驗證的服務器和工作的:

sendAuthentification(credentials: string): Observable<any> { 
      var headers = new Headers(); 
      headers.append('Authorization', 'Basic ' + btoa('user:pass')); 

      return this.http.get("http://ip/yourpost", headers}); 
    } 

希望這回答你的問題。

相關問題