React / Redux - открытие документа в новом окне / вкладке не работает на сайте SSL в современных браузерах - PullRequest
0 голосов
/ 22 января 2020

В современных браузерах наши системы https Stage / Production будут появляться, но не отображать / загружать документы PDF и Word на новых вкладках / окнах / панели браузера. Документ не загружается, и нет очевидного способа загрузить документ (хотя мы видим его, например, в Chrome Inspect).

У нас есть четыре среды - Dev, Test, Stage, Production. Dev и Test используют http. Dev / Тестовая работа. Этап / Производство не.

Мы прочитали:

Открыть URL в новой вкладке (а не в новом окне)

Открыть ссылку в новой вкладке в программном обеспечении реакции маршрутизатора

Использовать window.open, но заблокировать использование window.opener

После многих попыток мы остановились на :

    const WindowFeatures: string = 'noopener,noreferrer';
    const win = window.open(FileURL, '_blank', WindowFeatures);
    if (win !== null) {
        win.focus();
    }

У нас есть клиент React / Redux / Typescript и веб-сервер Microsoft IIS.

Наши клиенты React / Redux / Typescript расположены по адресу:

http (s): // app- [dev | тест | этап | ] .domain.com /

Документы доступны из виртуального каталога IIS по адресу:

http (s): // app- [dev | тест | этап | ] .domain.com / Documents / *. pdf

http (s): // app- [dev | тест | этап | ] .domain.com / Documents / *. docx

Во всех браузерах, старых и новых, в dev / test (http) документы открываются без проблем в новой вкладке, окне или загружаются после щелкнув по значку в клиенте React.

На этапе / производство (https) в современных браузерах появляется новое окно / вкладка / загрузка с URL-адресом целевого документа в адресе браузера, но в браузере отображает нашу целевую страницу React, как будто пользователь не вошел в систему с ошибкой 404, видимой в Chrome Inspect ищет http (s): // app- [dev | тест | этап | ] .domain.com / manifest. json.

На некоторых компьютерах в Edge при нажатии на блокировщик всплывающих окон отображается документ. В Chrome, если мы очищаем данные браузера, документ иногда отображается, но каждый раз, когда мы открываем Chrome, нам приходится снова очищать данные браузера, и на некоторых машинах он никогда не работает. В Opera и Firefox документ не отображается.

В старых IE документы отображаются (но приложение React работает плохо). Если мы отправим ссылку на документ в электронном письме HTML и нажмем на ссылку электронной почты, документ отобразится в браузере по умолчанию. Однако, если мы вставим ссылку в Chrome, Opera или Firefox, документ не отобразится и покажет нашу целевую страницу в отключенном состоянии.

Наконец, когда мы размещаем документы на другой домен, все отлично работает во всех средах / браузерах.

http (s): // app- [dev | тест | этап | ] documents.domain.com / *. pdf

http (s): // app- [dev | тест | этап | ] document.domain.com / *. docx

Мы бы хотели разместить все в одном домене, хотя вышеприведенное может быть откатом.

Любые идеи будут очень полезны оценили.

...