хэштеги (#) в параметрах, закодированных в URL, декодированных при перенаправлении

У меня есть две серверные системы ... один хостинг приложения, а другой хостинг аутентификации / авторизации. Когда приложение обнаруживает, что пользователь еще не вошел в систему, оно перенаправляет на сервер авторизации и передает в качестве параметра URL-адрес, первоначально запрошенный пользователем, чтобы после аутентификации пользователь был перенаправлен обратно на сервер приложения на сервер. Точный URL изначально запрашивается.

Однако, если этот исходный URL-адрес содержит #, вся подпрограмма скрывается. Похоже, что браузеры декодируют закодированный параметр url и, как следствие, сбрасывают что-либо после # на пол. Я пробовал это на Chrome, Safari и Firefox.

Пример:

Оригинальный URL:

https://xxx.com/#/main/by-users?param1=53&param2=13&param3=39

URL перенаправления:

https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%3A80%2F%23%2Fmain%2Fby-users%3Fparam1%3D53%26param2%3D13%26param3%3D39

Браузер показывает:

https://yyy.com/signin/?returnURL=https%3A%2F%2Fxxx.com%2F#/main/by-users?param1=53&param2=13&param3=39

Как видите, все, включая и после #, декодируется. Таким образом, сервер никогда не получит полное значение параметра returnURL. Это в основном просто получает

https://xxx.com/

Это должно быть частью некоторой спецификации где-то, хотя кажется безумным, что закодированный # должен быть декодирован и обрабатываться так, как если бы он никогда не кодировался в первую очередь. Но как обойти это?

Благодарю.

Ответы на вопрос(1)

Ваш ответ на вопрос