заголовок не добавляется в запрос Get в HttpClient в угловых - PullRequest
0 голосов
/ 01 мая 2019

У меня есть поддельный серверный API, и в моем коде я проверяю токен заголовка. это мой поддельный код:

       if (connection.request.url.endsWith('/api/orders') &&
       connection.request.method === RequestMethod.Get) {
       if (connection.request.headers.get('Authorization') === 'Bearer ' 
         + token) {
          connection.mockRespond(new Response(
          new ResponseOptions({ status: 200, body: [1, 2, 3] })
         ));
       } else {
         connection.mockRespond(new Response(
          new ResponseOptions({ status: 401 })
        ));
     }

и в моем сервисе у меня есть метод GET, который добавляет заголовок к запросу для получения данных.

getOrders () {

let token = localStorage.getItem('token');
let headers = new HttpHeaders()
headers = headers.set('Authorization', 'Bearer ' + token);
return this.http.get('/api/orders' , {headers:headers} ).subscribe(result=>{
  console.log('result : ' , result);
});

}

но я ничего не получаю и результат пустой. код состояния 401, и я не могу получить данные в соответствии с заголовком. как я могу решить проблему?

1 Ответ

0 голосов
/ 13 мая 2019

я наконец нашел свой ответ.в Angular 7 лучший способ добавить заголовок к запросу - использовать перехватчик.в перехватчиках вы можете добавить заголовок к запросу и в результате вы можете получить доступ к защищенному API.Вот пример перехватчика, который добавляет заголовок к запросу:

  intercept(request: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {
let currentUser = this.authservice.currentUser;
if (currentUser && currentUser.token) {
    request = request.clone({
        setHeaders: {
            Authorization: `Bearer ${currentUser.token}`
        }
    });
}

return next.handle(request)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...