强制 data-ajax= 在重定向或特定页面加载时"false"



假设我有一个指向以下页面的链接:

<a class="ui-btn" data-transition="slide" href="/Stuff/Properties/Q6158">Properties for Q6158"</a>

通常,我希望此页面滑入视图,因此data-ajax将是默认的"true",并且工作正常。 但是,如果在服务器端发生了一些事情,导致我想重定向到不同的页面,而不是使用 ajax 加载它怎么办? 换句话说,用户的会话已过期,我想重新加载整个登录页面,而不仅仅是将其滑入视图而不是请求的页面。 希望这是有道理的。

我意识到,当请求到达服务器并发现会话已经消失时,更改请求为时已晚,它已经由 jQM 发出。 我想我可以自己处理链接的点击并手动处理自定义的"重定向"响应,但这似乎过于繁琐,因为基本上网站上的每个链接都受此影响。

所以我没有想法。 我真的希望此时完全重新加载整个登录页面。 任何想法都会有所帮助! 谢谢!

在服务器端,您可以控制会话,在 ajax 调用中,如果会话已过期,则返回 404 错误。

在jQuery Mobile中,有一个名为"pageloadfailed"的事件,当页面加载失败时触发。在那里,您可以冷重定向到您的登录页面。

$( document ).on( "pageloadfailed", function( event, data ) {
    event.preventDefault();
    //redirect to your login page
});

希望有效。

我最终介绍了第三页。 当会话过期时,我返回此页面,我称之为"正在加载"。 页面所做的只是显示"正在加载,请稍候..."并立即将 location.url 设置为页面初始化中的登录页面,导致登录完全重新加载。 到目前为止,对于我的特定情况似乎效果很好。 但是感谢您的其他建议!

最新更新