История API - переписывание URL с несколькими слешами? - PullRequest
2 голосов
/ 24 января 2012

Я использую HTML5 History API (через History.js) для динамического перезаписи URL. Я бы хотел, чтобы они были в следующем формате:

http://www.example.com/example/article/page

где «article» и «page» задаются «History API».

Однако это не совсем работает, как ожидалось, поскольку pushState или replaceState, предоставленные History.js, похоже, работают только на той части URL, которая находится после последней косой черты.

Быстрый пример: если я нахожусь на http://www.example.com/example/ и наберу pushState('Article-Title/1'), URL становится http://www.example.com/example/Article-Title/1. Теперь я могу изменить номер страницы с помощью pushState('2'), но у меня нет возможности изменить часть Article-Title, что я и ищу. window.location.href, который используется в примере Бена Луптона , может изменить URL-адрес, но также вызывает «сложное» перенаправление.

Я полагаю, что это ограничение существует для предотвращения XSS; однако это меня сильно беспокоит. Есть ли разумный способ обойти это?

Ответы [ 2 ]

3 голосов
/ 24 января 2012

Нашел: URL, который я нажимаю, должен начинаться с косой черты. Это все, что нужно.

0 голосов
/ 28 октября 2015

Вы также можете использовать относительные URL: ../../Another-Section/1

...