Заголовки запроса HTTP get неверно настроены в angular

#angular #typescript #http #get #http-headers

#angular #typescript #http #получить #http-заголовки

Вопрос:

Я пытаюсь отправить запрос http get вместе с заголовками, как показано ниже

     var headers = {}
    headers['x-email'] = 1;
    headers['x-from'] = 1577836800;
    headers['x-to'] = 1598659200;


return this.http.get<any>(environment.apiUrl '/User/getTrips',{headers: new HttpHeaders(headers)})
      .subscribe(data => {
        if (data == undefined) {
          this.rowData = [];
          this.errorMsg = data['Error'];
        } else {
          this.rowData = data.slice(1);
          this.gridOptions.rowData = data;
          this.gridOptions.api.refreshCells({force : true});
        }
  

Когда я вижу в сетевой консоли, я не вижу никаких заголовков в запросе и, следовательно, получаю пустой ответ api.

Ответ №1:

Попробуйте инициализировать переменную перед ее использованием.

   const httpHeaders: HttpHeaders = new HttpHeaders({
        'x-email': 1,
        'x-from': 1577836800
        'x-to': 1598659200
      });
  

и затем

  this.http.get<any>(environment.apiUrl '/User/getTrips',
    {headers: httpHeaders })//... code continues here
  

Моя первоначальная мысль заключается в том, что HttpHeaders класс имеет несколько тонкостей, поскольку он неизменяем. Изменяя инициализацию таким образом, мы убеждаемся, что используется правильный тип и что все правильно инициализировано перед вызовом http.get

кстати, это неверно: * если данные не определены; свойство ошибки отсутствует

  if (data == undefined) {
          this.rowData = [];
          this.errorMsg = data['Error']; /* if data is undefined; there is no Error property*/
        } 
  

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

1. Большое спасибо. Это сработало. Да, извините, вы правы, если данные не определены, свойства ошибки нет.