Safari сокращает хэш URL в перенаправлении только в конкретном сценарии - PullRequest
0 голосов
/ 22 февраля 2019

Я включил виджет okta sigin на своем сайте (на странице index.html).Я настроил обратный вызов okta как "/ callback".

В моей веб-конфигурации nginx я включил временное перенаправление URL-адресов с "/ callback" на "index.html".

В index.html я включил скрипт, который проверяет,URL имеет «хэш-параметры», и если он имеет скрипт okta, он проанализирует эти параметры и запустит скрипт входа в систему, иначе он отрисовывает виджет входа в okta.

Это нормально работает в chrome и firefox, но не работает всафари.Я погуглил и обнаружил, что safari удаляет часть хеша после перенаправления URL из-за отсутствия конечной косой черты.

Но чтобы убедиться, что safari удаляет часть хеша, я сделал 2 проверки.

  1. Я включил тестовую ссылку на свой веб-сайт (тот же домен).

    <a href="/callback#hello=1">testlink</a>
    

, когда я нажимаю на эту ссылку, safari перенаправляет на http://localhost/index.html#hello=1

Я открыл какую-то страницу Google (другой домен), я открыл консоль браузера.Я запустил этот скрипт.

let at = document.createElement('a');
at.href="http://localhost/callback#hello=1"
at.click();

На этот раз сафари также успешно перенаправил на "http://localhost/index.html#hello=1"

Я действительно не могу найти, почему часть хеша удаляется, когда okta попадает вURL обратного вызова с частью хэша. Это происходит только в сафари

...