Принудительная обработка ссылок на домен вне маршрутизатора angular - PullRequest
0 голосов
/ 26 декабря 2018

У нас есть угловое приложение, размещенное в корне домена, скажем: example.com

У нас есть mvc.net api, работающий в виртуальном каталоге / api: example.com/api

У нас есть правила переписывания в web.config нашего API, чтобы разрешить вызовы в / api, и это работает правильно, потому что наши вызовы xhr работают.

Для аутентификации мы должны направить браузер на example.com/api / auth / что угодно, так что он может соответственно 302 провайдеру аутентификации.Как только пользователь проходит аутентификацию, он перенаправляется обратно в наш API, а затем обратно в угловое приложение.

Все это работает без проблем при разработке, поскольку технически все находится в отдельных доменах (locahost: 4200, 4201 и т. Д.).).Как только он развернут в том же домене, угловой маршрутизатор начинает перехватывать щелчки по ссылкам аутентификации и направляет их на перехват всех маршрутов, если не найдено ни одного маршрута.

Я попытался добавить target = "_ self" к ссылкам, как я видел, другие рекомендуют, но это не изменило поведение.

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

1 Ответ

0 голосов
/ 26 декабря 2018

Мне удалось выяснить это с помощью инструментов chrome dev, и это сообщение от stackoverflow

Мы используем пакет pwa angular, и я просмотрел этот сетевой журнал.показывая, что работник сервиса обслуживал URL из кэша (в данном случае неправильно).Мы добавили следующую запись в ngsw.json:

  "dataGroups":[
    {
      "name": "api",
      "urls": ["/api"],
      "cacheConfig": {
        "maxSize": 0,
        "maxAge": "0u",
        "strategy": "freshness"
      }
    }
  ]

и теперь все вызовы API больше не кэшируются.Мы можем дополнительно уточнить это только для наших URL-адресов авторизации, но пока это работает.

...