Получение ошибки в качестве аргумента типа '{headers: HttpHeaders; } 'нельзя назначить параметру типа' HttpParamsOptions ' - PullRequest
0 голосов
/ 29 апреля 2019

Итак, в настоящее время наш проект работает на Angular версии 4, мы пытаемся обновить его до Angular 7. Когда я установил новый http-модуль, он начал выдавать ошибку: Argument of type '{ headers: HttpHeaders; }' is not assignable to parameter of type 'HttpParamsOptions'.

Перед этим изменением мыиспользовали RequestOptions, но теперь он устарел с Angular 7.

Код с Angular 4:

   options(): RequestOptions {
     const headers = new Headers();
     headers.append('Content-Type', 'application/json; charset=utf-8');
     let options = new RequestOptions({ headers: headers });
     return options;
   }

Код с Angular 7

      options(): HttpParams {
        const headers = new HttpHeaders();
        headers.append('Content-Type', 'application/json; charset=utf-8');
        let options = new HttpParams ({ headers: headers });
        return options;
      }

1 Ответ

0 голосов
/ 29 апреля 2019

Вы помещаете параметры в заголовки, когда теперь они отделены от параметров:

Таким образом, параметры и заголовки идут по-разному. Так что в вашем сценарии будет выглядеть примерно так:

      options(): HttpHeaders {
        const headers = new HttpHeaders({'Content-Type', 'application/json; charset=utf-8'});
        return headers ;
      }

Обратите внимание, что я избавляюсь от headers.append тоже.

Теперь вы должны выглядеть так:

headers = options();
this.http.get(url, { headers });

Если вы хотите params, сделайте это по-отдельности:

headers = options();
params = new HttpParams(); 
this.http.get(url, { headers , params});
...