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