Как сказать Фарадею сохранить хэш-банг в URL сайта?
Я работаю над развилкой библиотеки, которая реализует Фарадей для создания URL.
site = "https://example.io/#/"
path = "oauth/authorize"
connection = Faraday.new(site)
resource = Faraday::Utils.URI(path)
URL = connection.build_url(resource)
Обратите внимание, что URL моего сайта заканчивается хешбангом. Но когда приведенный выше код выполняется, Фарадей полностью удаляет hashbang:
Но мое приложение требует, чтобы он построил этот URL (с хэшбэнгом):
Теперь, прежде чем я вырву Фарадея и залатываю обезьяны что-нибудь ужасное... могу ли я сделать это, установив опцию на Фарадее?
2 ответа
Я думаю, что ответом здесь будет прекращение попытки сохранить хеш-часть URL в Фарадее, так как эта часть игнорируется для HTTP-запросов.
Хеш-часть URL (также известная как URI "идентификатор фрагмента") никогда не отправляется на сервер. Это может иметь значение только в клиенте. Как правило, когда HTTP-клиент является веб-браузером, идентификатор фрагмента содержит имя элемента, на который нужно перейти. Или, трюки hashbang могут быть использованы с некоторыми взаимодействиями JavaScript.
Но использовать такие URL-адреса в Фарадее не имеет смысла, потому что часть хеша никогда не будет отправлена на сервер в любом случае.
Имея '#' в переменной пути вместо переменной сайта, я получаю вывод, как вам нужно.
site = "https://example.io/"
path = "#/oauth/authorize"
connection = Faraday.new(site)
resource = Faraday::Utils.URI(path)
URL = connection.build_url(resource)
Пожалуйста, попробуйте приведенный выше код и дайте мне знать результат.