【问题标题】:Page needs refresh after redirection from server从服务器重定向后页面需要刷新
【发布时间】:2014-06-02 18:18:24
【问题描述】:

新问题,但非常接近need to refresh page in jquery mobile。

我有一个 /login 页面,用户在第一次访问应用程序的 / 时被重定向到该页面(因此未登录)。顺便说一句,要登录,用户只需提供用户名。此 /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>

表单上没有 action 属性,因此(除非我缺少一些基础知识,希望不会)表单提交到 /login。

我正在使用带有 express 的 NodeJS,并且处理 post 请求服务器端看起来像这样:

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

我确实被重定向到/匹配页面(索引),但是这个索引页面中的嵌入脚本没有运行,并且一些jquerymobile对象没有完全运行:这个索引文件有2个JQM页面(两个divs with data-role ="page"),第一个 JQM 页面(div)的页脚有 2 个链接,一个指向第二个页面(div)(通过锚点,JQM 方式)。但是这个链接也没有激活。

我必须重新加载 / 页面才能运行嵌入的脚本($(document).ready,头文件中的脚本...)并且所有 JQM 对象都能正确响应。

提示:在重新加载页面之前,在firebug中,post /login请求的响应有一个302状态(是否由于重定向指令服务器端),以及以下get /请求(确定由于重定向指令服务器side) 有一个 200 状态的 EMPTY 响应,尽管它可以加载页面和它嵌入的单个图像。

我肯定错过了一些东西,但无法弄清楚...... 感谢您的所有帮助

【问题讨论】:

    标签: jquery node.js express


    【解决方案1】:

    简单的解决方案是在页面上的任何链接上使用data-ajax="false",这会告诉 jquery mobile 像任何普通网站一样加载整个页面。

    例子:

    <a data-ajax="false" href="page.html"> Some link </a>
    

    【讨论】:

      【解决方案2】:

      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

      【讨论】:

      • 谢谢,正是我的问题和找到解决方案的方法!在 jqm 上完全是菜鸟,我做错了(老式的方式,但没有禁用 ajax 默认)
      • @wiill 没问题!自 JQM 第一次发布以来,我一直在使用它进行开发。假设我所做的完全错误,尤其是当 API 发生变化并且所有文档都已过时时。请将我的回答标记为已接受。 ;)
      猜你喜欢
      • 2020-12-31
      • 2020-03-09
      • 1970-01-01
      • 2021-05-08
      • 2020-07-04
      • 2020-01-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多