Каждый запрос, который я делаю к внутреннему API, требует заголовка авторизации. Я создаю приложение на основе Polymer, используя множество веб-компонентов, как частных, так и сторонних. Почти все вызовы AJAX я делаю через <iron-ajax>
элементы. Я знаю, что могу создать пользовательский компонент для достижения централизации, которую я ищу, но мне было интересно, будет ли использование сервисного работника для перехвата запросов к моему API и добавления необходимых заголовков и любых других манипуляций или проверки, которые я мог бы захотеть. жизнеспособным, эффективным или даже возможным. Тем более, что Polymer 1.0 пока не поддерживает расширение других компонентов.
Как я могу и имеет ли смысл использовать Service Worker для добавления заголовка авторизации ко всем моим запросам API?
Ответы (1)
Думайте о сценарии сервис-воркера как о (java-)скриптовом прокси-сервере — вы, безусловно, можете выполнять любые манипуляции (включая добавление, удаление и манипулирование HTTP-заголовками) с вашими вызовами, пока сервис-воркер контролирует источник. И до тех пор, пока ваши вызовы API не будут иметь одинаковое происхождение. Cross-Origin и другие непрозрачные вещи с запросами становятся сложнее, но я не думаю, что это применимо к вашему варианту использования, судя по тому, как вы это описали.
Единственная проблема с этим подходом заключается в том, что вы в основном ограничиваете область действия своего приложения одним браузером: Google Chrome (версия 40+). Если вас это устраивает, смело продолжайте, но, поскольку Firefox пока не будет поддерживать захват запроса (событие fetch
), (даже несмотря на то, что сервисные работники на данный момент, похоже, наконец приземляются в Firefox 43), и вы не можете полифилить сервис-воркеры — вам придется предоставить некоторый резервный механизм в коде JS вашей страницы, если вы хотите поддерживать < em>любой браузер, кроме Chrome 40+, по крайней мере, на несколько месяцев вперед.
xhr.open
, чтобы настроить слушателей и сделать там все, что мне нужно, и на данный момент я решил сделать это с помощью Polymer Behavior.
- person bearfriend; 21.07.2015
<iron-ajax>
вызовы. Это компонент, который использует 1. статические специальные заголовки 2. выполняет проверку 3. настраивается извне. Все это кричит мне о dom-module, и я думаю, что сервисный работник, перехватывающий это и т. д., требует больше работы, чем нужно. Для этого есть элемент! - person mbunit   schedule 20.07.2015