Чтение параметров заголовка в URL из webapi в угловых 4 - PullRequest
0 голосов
/ 07 марта 2019

У меня есть веб-сайт http://header.com, который вызывает API для сохранения некоторых данных и возврата URL веб-сайта http://post.header.com с параметрами заголовка . Приложение в http://post.header.com должно читать заголовки из URL, возвращенного из API. Пробовал использовать куки и локальное хранилище, но ни один из них не работал (пусто) Я хочу скрыть параметры от URL. Пожалуйста, предложите мне

1 Ответ

1 голос
/ 08 марта 2019

Если я правильно понимаю вопрос, вы пытаетесь реализовать следующий сценарий:

  1. Пользователь открывает http://header.com (Web1) в веб-браузере и отправляет некоторые данные вваш API.
  2. API возвращает URL-адрес в качестве ответа и некоторые параметры.
  3. Веб-приложение на Web1 берет URL-адрес и перенаправляет браузер на http://post.header.com (Web2) (или открывает его в новомtab / window).
  4. Web2 должен использовать параметры из результата, возвращенного API, и что-то с ними делать.
  5. Ни при каких условиях вы не хотите, чтобы эти параметры были в браузере.адресная строка.

Если мое понимание неверно, игнорируйте остальную часть этого ответа.В таком случае, пожалуйста, отредактируйте свой вопрос и опишите сценарий более подробно.

Это факты, которые необходимо учитывать при попытке решить эту проблему:

  1. Поскольку вы используете разные домены, LocalStorage не будет разделен между ними (как вы узнали), поэтому его нельзя использовать для отправки параметров.Смотрите здесь: В HTML5, является ли объект localStorage изолированным для каждой страницы / домена?
  2. Вы не можете отправлять заголовки HTTP с URL-адресом, который будет открыт в веб-браузере.Это просто не то, как работают браузеры.
  3. Изначально Cookies не были предназначены для совместного использования между разными доменами, но это изменилось.Вы должны иметь возможность установить домен header.com в Cookie и субдомены (например, post.header.com) должны иметь возможность его использовать.Подробнее см. Здесь: Совместное использование cookie-файлов между поддоменом и доменом

Возможное решение / обходные пути:

  1. параметр cookie, задав домен (см. пункт 3 выше).
  2. Если вы можете открыть Web2 в новой вкладке / окне (вместо перенаправления текущего окна), тогда Web1 может использовать window.postMessage для отправки сообщений(и параметры) в Web2.Web2 может использовать слушателя для реагирования на это сообщение.Пример кода здесь: Как я могу отправить событие из родительского окна в его дочернее окно?
  3. Вы можете использовать кеш (например, MemoryCache) в своем веб-API и хранить Key-Value-Пары, т. Е. Guid плюс объект с параметрами.Затем вы должны вернуть ключ своему клиенту, который затем перенаправит на http://post.header.com?key=<Key>.Web2 может использовать ключ и получить параметры из API.При использовании этого метода у вас все еще есть параметр URL, но фактические параметры не являются частью URL.
...