@Ghoulll

Почему неправильно строится http запрос?

Есть метод для отправки запроса:
getStrongAlcoholReports(selectedItems?): Observable<ReportModel> {
    let selecteditemstest = [];
    let apiParams;
    if (selectedItems) {
      for (let code of selectedItems) {
        for (let codesarr of code.codes) {
          selecteditemstest.push(codesarr);
          apiParams = selecteditemstest.join('&codes=');
        }
      }
      return this.http.get<ReportModel>(this.listOfStrongAlcoholReports, { params: { codes: apiParams } });
    } else {
      return this.http.get<ReportModel>(this.listOfStrongAlcoholReports, { params: { codes: '200&codes=262' } });
    }
  }

Но, когда посмотрел какой запрос построился, он оказался не правильным. Почему & заменяется на %26 и как исправить? Заранее всем спасибо.
5ebfe0ecd55e5848283217.png
  • Вопрос задан
  • 78 просмотров
Решения вопроса 1
Xuxicheta
@Xuxicheta Куратор тега Angular
инженер
Ну примерно так
const params = codes.reduce(
  (acc, code) => acc.append('codes', `${code}`),
  new HttpParams(),
);
this.http.get<ReportModel>(this.listOfStrongAlcoholReports, { params });

где codes это [200, 262 ]

Не указывайте params объектом, для этого есть класс HttpParams

Можно и так
const params = new HttpParams({
  fromObject: {  codes:  codes.map(String)  }
});
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы