Угловой HttpClient игнорирует заголовки

#angular #angular-httpclient #angular-http-interceptors

#угловой #угловой-httpclient #угловые http-перехватчики

Вопрос:

По какой-то причине мои заголовки игнорируются при выполнении запроса.

(ниже приведена урезанная версия того, что я делаю)

 let headers = new Headers();

headers = headers.set('Content-Type', file.mime);
headers = headers.set('X-Blah', "Test");

return this.httpClient.put<HttpEvent<Blob>>(`${encodeURIComponent(file.name)}`, {
   data: file,
   responseType: "blob",
   observe: "events",
   headers: headers,
   withCredentials: this.configuration.withCredentials
});
  

Что я замечаю при использовании инструмента разработки, так это то, что объект [ HTTPHeaders ] headers только помещает новый заголовок в lazyUpdate свойство / карту.

В настоящее время установлен HttpInterceptor, который при срабатывании объекта запроса не содержит ни одного из заголовков, которые я установил в запросе.

Это проверялось снова и снова, и все правильно для запроса, заголовки находятся в объекте (хотя и в этой карте lazyUpdate), но по какой-то неизвестной причине они, похоже, просто игнорируются в запросе. Таким образом, в запросе переопределяется его Content-Type свойство, поскольку он думает, что там его нет.

Есть мысли?

Ответ №1:

Кажется, что документация, над которой я работал, была неправильной. Это было связано с this.httpClient.put(url, body, options) методом …. кажется, я работал над пониманием того, что body параметр был необязательным, а это не так.

Таким образом, последний вызов должен был передать большой двоичный объект в качестве второго параметра и сохранить параметры в качестве третьего параметра…

 return this.httpClient.put<HttpEvent<Blob>>(`${encodeURIComponent(file.name)}`, file, {
   responseType: "blob",
   observe: "events",
   headers: headers,
   withCredentials: this.configuration.withCredentials
});
  

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

1. Типичная теория резиновой утки, тратьте века, пытаясь это исправить, объясните это в StackOverflow и решите это через несколько минут….. @_@