Почему перенаправление CodeIgniter не удаляет хеш / фунт (#) в конце URL? - PullRequest
5 голосов
/ 19 февраля 2012

Я не уверен, действительно ли это проблема CodeIgniter или проблема с браузером.Это происходит в Chrome, но не в Safari.Однако я бы предположил, что это не должно происходить ни в одном браузере.

Если вы перейдете на example.com / foo # , который содержит

redirect('bar');

, вы ожидаетев итоге на example.com / bar .Вместо этого вы попадаете на example.com / bar # .Я не понимаю, почему хэш не уходит.Это не имеет никакого смысла.Что происходит?

Ответы [ 2 ]

10 голосов
/ 08 ноября 2012

Используйте метод обновления, если вам нужно удалить хеш:

redirect('bar', 'refresh');
5 голосов
/ 19 февраля 2012

не может. Хеш-тег доступен только клиентскому скрипту . Code Igniter, PHP или любой другой скрипт на стороне сервера даже не будут знать, что стоит после знака #. На сервер отправляется запрос перед знаком #. Часть после #sign передается в документ для интерпретации. Если есть элемент с идентификатором # в качестве знака #, страница прокручивается до него. В противном случае js может прочитать его и делать с ним что угодно.

Кроме того, HTTP-перенаправление передает запрос с теми же параметрами, что и исходная страница, поэтому хастаг также передается

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...