Страница должна обновляться после перенаправления с сервера - PullRequest
1 голос
/ 04 февраля 2012

Новый вопрос, но очень близко к необходимо обновить страницу в jquery mobile .

У меня есть страница / login, на которую пользователь перенаправляется при доступе к / приложения дляв первый раз (поэтому не вошли).Кстати, чтобы войти, пользователь должен только предоставить имя пользователя.Эта страница / страница входа предлагает форму с одним вводом текста, как показано ниже:

<form method="post">
<span>Votre pseudo:</span>
<input id="username" name="username" data-bind="value: username, valueUpdate: 'afterkeydown'" />
<input type="submit" id="join" data-icon="star" value="Rejoindre !" data-bind="enable : canJoin"/>
</form>

В форме нет атрибута действия, поэтому (если я не пропускаю некоторые основы, надеюсь, что нет) форма отправляетс отправкой в ​​/login.

Я использую NodeJS с Express, и обработка на стороне сервера почтовых запросов выглядит следующим образом:

app.post("/login", function (req, res) {
    //do some stuff, store username for instance...
    res.redirect("/");
});

Я действительно перенаправлен на / соответствующую страницу (index), но встроенные сценарии на этой странице индекса не запускаются, и некоторые объекты jquerymobile не полностью работоспособны: этот файл индекса имеет 2 страницы JQM (два элемента div с data-role = "page") и нижний колонтитул первого JQMpage (div) имеет 2 ссылки, одна из которых указывает на вторую страницу (div) (через якоря, JQM).Но эта ссылка также не активна.

Мне нужно перезагрузить страницу /, чтобы запустить встроенные сценарии ($ (document) .ready, сценарии в заголовке ...) и все объекты JQM.Правильный ответ.

СОВЕТ: перед перезагрузкой страницы в firebug ответ на запрос post / login имеет статус 302 (из-за того, что он выполнен на стороне сервера инструкций по перенаправлению) и следующий запрос get / request (обязательноиз-за серверной инструкции по перенаправлению) имеет ПУСТОЙ ответ с 200 статутами, хотя он может загрузить страницу и одно встроенное изображение.

Я, конечно, что-то упускаю, но не могу понять ...спасибо за вашу помощь

Ответы [ 2 ]

1 голос
/ 02 июня 2014

Простое решение - использовать data-ajax="false" на любой ссылке на вашей странице, это говорит jquery mobile о загрузке всей страницы, как и любого обычного сайта.

Пример:

<a data-ajax="false" href="page.html"> Some link </a>
0 голосов
/ 04 февраля 2012

JQuery mobile использует ajax для загрузки запрашиваемой страницы в dom.На странице, которую вы запрашиваете, должна быть только одна jqm-страница.

Насколько я помню, мне пришлось добавить все мои скрипты на мою первую страницу, а затем привязать к событию смены страницы, чтобы решить, когдавыполнить их.Я не думаю, что jqm выполнит сценарии на странице, которая была загружена через ajax.

Посмотрите на структуру страницы здесь:

http://jquerymobile.com/demos/1.0.1/docs/pages/page-anatomy.html

Подробнееподробности о том, как работает навигация, приведены здесь:

http://jquerymobile.com/demos/1.0.1/docs/pages/page-navmodel.html

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