2015-07-28 2 views
5

У меня есть услуги и потребительские услуги JAVA в Angularjs 1.3. Услуги основаны на JSON и ожидают аутентификации BASIC (имя пользователя-пароль). В AgJs 1.3 я использовал базовый код Base64 (найденный в google) для создания базового токена аутентификации от имени пользователя и пароля и способного потреблять услуги УСПЕШНО.Как позвонить в службу REST с базовой аутентификацией в Angularjs 2.0

Я прочитал HTTP-класс в документации AgJs 2.0, но я не нашел никакой информации об базовой аутентификации.

Может ли кто-нибудь предоставить образец кода для использования служб REST в Angularjs 2.0 с использованием аутентификации BASIC?

Заранее благодарен!

С наилучшими пожеланиями!

Мой AgJs 1,3 Код:

вар 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

Have взгляните на [этот ответ] (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 к серверу, который имеет Basic аутентификации и это работает:

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

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

Надеюсь, что ответ на ваш вопрос.

Смежные вопросы