2017-03-03 3 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

あなたはgetの代わりに投稿を送信しています。 _authdataも使用しません。 –

+1

'メソッドを試してみてください:何かが実装されておらず、あなたがしようとしているときに 'GET'505が来る – joyBlanks

答えて

0

Base64.encodeは、角-jsからでは理解されていないか、あなたはjavascriptの「btao」と「ATOB」を使用することができたり、次のコードsnipetがお手伝いしますかもしれないNPM

を通じてBASE64を含めることができます。

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