Как загрузить страницу на сервер с переменными после хешмарка в URL? - PullRequest
1 голос
/ 04 января 2011

В настоящее время, когда пользователь переходит по следующему URL-адресу:

www.foo.com/details.hmtl#id=123

Сервер возвращает файл details.html и затем выполняет вызов Ajax на стороне клиента после возврата страницы для загрузки данных дляпредмет с id = 123.Он использует BBQ Plugin для JQuery

. Есть ли способ получить параметры, следующие после хеш-метки на сервере, чтобы при первоначальной возврате страницы сервером она могла быть возвращенасодержащий детали для id=123.

Это необходимо для того, чтобы детали по-прежнему отображались независимо от того, включен ли Javascript в браузере пользователя.И если у них включен Javascript, они могут изменять содержимое с помощью Ajax, нажимая существующие кнопки на сайте.

Заранее благодарим за помощь

РЕДАКТИРОВАТЬ:

В настоящее время страницы возвращаются следующим образом:

id = self.request.get("id")
template_values= {'id': id}
path = os.path.join(os.path.dirname(__file__), 'details.html')
self.response.out.write(template.render(path, template_values))

Ответы [ 3 ]

3 голосов
/ 04 января 2011

Вы не можете сделать это, потому что браузер отправляет только / details.html для запроса.

если вам нужно, вы можете использовать параметры например: впервые вы можете отправить пользователя на эту страницу / details.hmtl? id = 123 , затем сохранить запрос пользователя в значении сеанса и перенаправить пользователя на реальную страницу без параметров и hash / details.hmtl # id = 123 , затем получите сеанс текущего пользователя и отобразите содержимое страницы.

Вот как вы можете сделать это без использования JS

С уважением NiL

0 голосов
/ 04 января 2011

Почему вы используете # для этого? Первая часть ответа NiL - использовать реальный запрос? вместо этого, и я бы поддержал это. Но не беспокойтесь о перенаправлении на общие страницы и т. Д. Вам нужна страница с информацией об идентификаторе 123, поэтому возвращайте ее с сервера! Вы активно решаете превратить один запрос на страницу с идентификатором 123 в циклический ответ на запрос, относящийся к общему запросу, без видимой причины, и это для обычного случая, когда у пользователя есть JavaScript!

Конечно, используйте динамические вещи и измените страницу для второго запроса, но к тому времени вы уже знаете, что у пользователя есть javascript. Для первого запроса придерживайтесь? Id = 123 и дайте им завершить страницу.

Зачем это усложнять и замедлять?

0 голосов
/ 04 января 2011

Часть после якоря (#) никогда не отправляется на сервер браузером, если вы не взломали его.Вот как вы можете сделать это, используя куки: http://www.stoimen.com/blog/2009/04/15/read-the-anchor-part-of-the-url-with-php/

...