Угловой http-запрос get

#angular

#угловатый

Вопрос:

Я пытаюсь отправить http-запрос get на angular.

как мне добавить apikey при авторизации, я могу это сделать только на Postman, так как вы просто вводите значения.

 this.http
  .get(url)
  .pipe()
  .subscribe((data: any) => {
    console.log(data);
  });
 

когда я отправляю этот запрос, он говорит, что неавторизованный, потому что отсутствует ключ api

Комментарии:

1. angular.io/guide/http

Ответ №1:

Можно добавить заголовки к запросу с помощью HttpHeaders :

 const headers = new HttpHeaders().set('Authorization', `Bearer ${token}`);
 

и вы можете передать их следующим образом:

 this.http.get(url, { headers }) // ...
 

Комментарии:

1. Я бы пошел по угловому пути и использовал перехватчики: angular.io/guide/http#intercepting-requests-and-responses

Ответ №2:

Попробуйте использовать приведенный ниже код :

 let header = new HttpHeaders().set(
      "Authorization",
       localStorage.getItem("token")
    );

return this.http.get(url, {headers:header}).pipe()
  .subscribe((data: any) => {
    console.log(data);
  });
 

Ответ №3:

  1. Сначала проверьте, возвращается ли ключ apiKey из серверной части при выполнении запроса аутентификации
  2. Если да, вам нужно сначала выполнить запрос авторизации в Angular (POST-ЗАПРОС): введите параметр входа, и вы получите токен / apiKey.

конструктор (частный http: HttpClient, частный маршрутизатор: Маршрутизатор) {} // в компоненте (сервер: ‘http://localhost:5000/api ) // в environment.ts

 ***login(user: { username: string, password: string }): Observable<boolean> {
return this.http.post<any>(`${environment.server}/auth`, user)
  .pipe(
    tap(tokens => this.doLoginUser(user.username, tokens)),
    mapTo(true),
    catchError(error => {
      console.log(error.error);
      return of(false);
    }));
 

}***

  1. Используйте этот токен для получения конкретных данных из базы данных

    общедоступный getUserInfos() { возвращает JSON.parse(localStorage.GetItem(this.USER_INFOS)); }

Я надеюсь, что смогу помочь