Набор HttpHeaders против добавления в Angular - PullRequest
0 голосов
/ 26 ноября 2018

У меня есть кеширующий перехватчик, который проверяет, присутствует ли в запросе заголовок x-refresh.Если это так, он игнорирует любые кэшированные комбо-запросы / ответы для этой конечной точки и отправляется на сервер.Однако, когда я использую его в служебном вызове, я должен использовать метод append(...) вместо метода set(...) в классе HttpHeaders Angular.Я не мог понять из документации или онлайн-поиска, почему это так.req.headers.get(x-refresh) возвращает то, что я ожидаю, только если используется append('x-refresh', '').req.headers.get('x-refresh') ничего не возвращает, если я использую set('x-refresh', '').Это почему?Я посмотрел исходный код для этого и не вижу ничего, что могло бы изменить это поведение, но я предполагаю, что это то, что я упустил.

В чем разница между set и append, отличным от set, будетперезаписать заголовок этим ключом, если он уже существует, в противном случае установить его, тогда как append добавит этот заголовок, если ему разрешено добавлять этот заголовок?

1 Ответ

0 голосов
/ 04 мая 2019

Все, что я пытался сказать в своем комментарии, это то, что стимулом для вашего вопроса является решение проблемы кодирования, размещение кода помогает сообществу ответить на ваш вопрос и поделиться знаниями.т.е. задайте хороший вопрос, получите хороший ответ.

Однако, если вы просто хотите, чтобы кто-то объяснил разницу между множеством и дополнением, вы просите предположить, что у вас нет проблем в другом месте кода, когда то, что вы действительно хотитезнаю, почему не «установил» работу в вашей реализации .то есть вас не интересуют общие различия.

Насколько нам известно, возможно, ваш синтаксис отключен в какой-то строке кода, не опубликованной.Проверьте этот связанный вопрос, чтобы увидеть пример этого: Задать заголовки, используя append или set, не работает в Angular 2 .Также возможно, что была ошибка на множестве против добавления в определенной угловой версии, с которой вы столкнулись.В любом случае, я надеюсь, вы поймете, почему это не помогает сосредоточиться на общих чертах.

Когда вы публикуете код, лучше, если он помещен в стек, и т. Д., Это позволяет членам сообщества лучше реагировать, так как мы видим полную картину (предыдущий код, угловая версия и т. Д.) И устранение неполадок с разных сторон.Более того, если есть воспроизводимая ошибка, возможно, она действительно требует билета на github для самого углового проекта.

...