Эта ошибка не из вашего кода (но она вызвана этим).
Ошибка ссылается на строку 165 http.js модуля Angular HttpClient, которая представляет собой следующий фрагмент (по крайней мере, в Angular 8):
this.lazyInit = (/**
* @return {?}
*/
() => {
this.headers = new Map();
Object.keys(headers).forEach((/**
* @param {?} name
* @return {?}
*/
name => {
/** @type {?} */
let values = headers[name];
/** @type {?} */
const key = name.toLowerCase();
if (typeof values === 'string') {
values = [values];
}
if (values.length > 0) { // <=== THIS IS WHERE THE ERROR IS ===
this.headers.set(key, values);
this.maybeSetNormalizedName(name, key);
}
}));
});
Скорее всего, значения заголовков не устанавливаются. Я бы порекомендовал сначала полностью удалить заголовки и посмотреть, исчезнет ли ошибка. Если он исчезнет, добавьте его обратно по одному за раз.
Посмотрите, установлен ли токен на самом деле (что он не является неопределенным). Вы можете добавить console.log (this.token) в начале метода logout ().
Также вам не нужно явно устанавливать Content-Type большую часть времени, так как Angular может занятьЗабота об этом автоматически в большинстве случаев. Вы можете удалить это и посмотреть, имеет ли это какое-то значение.
Тот факт, что вы успешно вышли из системы, вероятно, означает, что вы правильно (явно) передаете заголовки в Postman, но не передаете их правильно в Angular(как указано в ошибке). Кроме того, ваш бэкэнд может просто не выполнять валидацию должным образом. Поэтому тот факт, что вы можете выйти из Почтальона, не имеет существенного отношения к этой проблеме.