Угловые параметры запроса HttpClient не отображаются в сборке продукта - PullRequest
0 голосов
/ 18 ноября 2018

У меня есть странная проблема, когда мои параметры запросов запросов get не работают в сборке prod, но они работают в сборке разработки.

Сначала я использовал HttpModule, я обновился до HttpClientModule снадеется, что проблема может быть решена.Но, к сожалению, безуспешно.

При переходе на HttpClient я впервые столкнулся с этой проблемой, когда вложенные объекты не проходили должным образом.Я исправил это, приведя в порядок все вложенные объекты.

Тем не менее проблема остается там, где при использовании сборки prod не передаются параметры запроса.

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

stringifyObjects() {
  for (var prop in this) {
    let isObject = typeof this[prop] === 'object' && this[prop] !== null

    if(isObject) {
      this[prop] = JSON.stringify(this[prop]) as any;
    }
  }
}

Этот код я использую для передачи параметров в запрос

let params = new HttpParams({
  fromObject: data
})

this.http.get(url, {params: params, headers: headers})

Кроме того, я попытался добавить каждый параметр отдельно:

let httpParams = new HttpParams();

Object.keys(data).forEach(function (key) {
  httpParams = httpParams.append(key, data[key]);
});

return this.http.get(url, {params: httpParams, headers: headers})

Все с одинаковым результатом.

Кто-нибудь, кто сталкивался с этой проблемой, или кто-нибудь, кто знает, что может быть причиной этого?

Заранее спасибо.

EDIT

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

console.log('params.toString()', params.toString());

Обнаружено, что this params.toString () возвращает пустое значение.строка (в то время как при разработке разработки, это возвращает строку правильно).Мой подход заключается в том, чтобы вручную добавить строку в URL вместо передачи в виде параметров.

Тем не менее, я не нашел способа исправить это или обойти это.

...