2017-03-03 66 views
0

我試圖通過基本身份驗證訪問REST API服務。

這工作完全作爲一個捲曲的請求:

curl -D- -X GET -H "Authorization: Basic eW**********0NQ==" -H "Content-Type: application/json" "https://api.domain.com/api/users/email/[email protected]" 

在角度,我想這和它似乎並沒有工作,我得到一個錯誤501 ...

var _url = "https://api.domain.com/api/users/email/[email protected]"; 
var _authdata = Base64.encode('MyUsername' + ':' + 'MyPassword'); 
var _headers = { 
    'Authorization': 'Basic eWd***********0NQ==', 
    'Content-Type': 'application/json'    
}; 

$http({ 
    method: 'GET', 
    url: _url, 
    headers: _headers 
}).then(function(request) { 
    console.log('request'); 
}); 

我試圖理解爲什麼這不能正常工作。 CORS不是問題...

有什麼建議嗎?

+0

那麼,什麼是服務器響應? '401','403',其他? – lealceldeiro

+0

您正在發送帖子而不是獲取。你也不使用_authdata。 –

+1

嘗試'方法:'GET'' 501來的時候沒有實現什麼東西,你正在試圖做到這一點 – joyBlanks

回答

0

Base64.encode是不理解由角JS要麼你可以使用JavaScript「btao」和「ATOB」也可以包括通過的base64 NPM

可能下面的一小段代碼片段會幫助你。

var _url = "https://api.domain.com/api/users/email/[email protected]"; 
    var _authdata = btoa('MyUsername' + ':' + 'MyPassword'); 
    var _headers = { 
    'Authorization': 'Basic' + _authdata, 
    'Content-Type': 'application/json'    
    }; 

    $http({ 
     method: 'GET', 
     url: _url, 
     json: true, 
     headers: _headers 
    }).then(function(request) { 
     console.log('request'); 
    }); 

,或者您可以使用NPM包括agnular-的base64依賴性: https://www.npmjs.com/package/angular-base64