pjax добавляет URL при выборе ссылки

Когда я нажимаю на первую ссылку, pjax срабатывает с правильным содержимым. Однако, когда я выбираю вторую ссылку, pjax добавляет к уже выбранной ссылке, такой как «http://localhost.com/name/test1/name/test2/», а затем возвращается на страницу индекса. Я предполагаю, что из-за добавления второй ссылки. Как решить эту проблему?

 <li><a data-pjax='#content' href="name/test1/"> test1 </a></li>
 <li><a data-pjax='#content' href="name/test2/">  test2</a></li>
 <li><a data-pjax='#content' href="name/test3/">  test3 </a></li>

 <script type="text/javascript">
$(document).ready(function(){
     $(function(){

  $('a[data-pjax]').pjax({container:'#content',timeout:15000});
   });

  });
  </script>

person Claude Grecea    schedule 03.10.2012    source источник
comment
Я решил это, добавив косую черту / перед всеми href, например href=/name/test1. по какой-то причине это вызывало дублирование того же URL-адреса без него.   -  person Claude Grecea    schedule 04.10.2012


Ответы (1)


Вероятно, потому что вы используете относительный путь в ссылках, попробуйте изменить его на:

 <li><a data-pjax='#content' href="/name/test1/"> test1 </a></li>
 <li><a data-pjax='#content' href="/name/test2/">  test2</a></li>
 <li><a data-pjax='#content' href="/name/test3/">  test3 </a></li>

Добавляя / в начале атрибутов href.

Предполагая, что вы начали с /, когда вы нажимаете на первую ссылку, pjax меняет местоположение страницы с windows.location на /name/test1/. Ссылка на name/test2/ на странице /name/test1/ означает /name/test1/ + name/test2/ => /name/test1/name/test2/, так как это относительный путь.

person Ziyan    schedule 14.08.2013