2015-05-24 4 views
0

Я работаю над вилкой библиотеки, которая реализует Faraday для создания 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 полностью:

https://example.io/oauth/authorize

Но мое приложение требует, чтобы построить этот URL (с hashbang):

https://example.io/#/oauth/authorize

Теперь, прежде чем я пойду, вырву из Фарадея и обезглавливая что-то страшное .. могу ли я сделать это, установив опцию на Фарадея?

+0

Отправлено https://github.com/lostisland/faraday/issues/482 – charneykaye

ответ

2

Я думаю, что ответ здесь должен был бы оставить попытку сохранить хэш-часть URL-адреса в Faraday, поскольку эта часть игнорируется для HTTP-запросов.

Хэш-часть URL-адреса (также известного как идентификатор фрагмента URI) никогда не отправляется на сервер. Он может иметь только смысл в клиенте. Обычно, когда HTTP-клиент является веб-браузером, идентификатор фрагмента содержит имя прокручиваемого элемента. Или, хешбанг-трюки можно использовать с некоторым взаимодействием с JavaScript.

Но использовать такие URL-адреса в Фарадее не имеет смысла, так как хэш-часть никогда не будет отправляться на сервер в любом случае.

+0

Да, это правильный ответ. Фарадей предотвращает это по какой-то причине. Проспав сам вопрос, я проснулся, решив подойти к проблеме с другой стороны - рефакторинг цели (в этом случае сервер oauth, предназначенный для целей безопасности, будет отправлен полный URL-запрос) – charneykaye

0

Имея «#» в переменной пути вместо переменной сайта, я получаю вывод по мере необходимости.

site = "https://example.io/" 
path = "#/oauth/authorize" 
connection = Faraday.new(site) 
resource = Faraday::Utils.URI(path) 
URL = connection.build_url(resource) 

Пожалуйста, попробуйте приведенный выше код и дайте мне знать результат.

+0

Я раньше не пробовал эту комбинацию, однако это дало тот же результат. Тем не менее, я склоняюсь к другому ответу - Фарадей предотвращает это по какой-то причине. – charneykaye

 Смежные вопросы

  • Нет связанных вопросов^_^