使用Ajax调用支持Jquery移动中的页面重定向

Rap*_*vet 7 php redirect jquery-mobile

我正在构建一个基于MVC框架的JQuery Mobile应用程序.

我的问题是我无法向浏览器发送"重定向"指令(HTTP,Javascript,META-refresh).

它导致浏览器显示一行:" undefined ".

以下是服务器端重定向的代码:

<html><head>
      <script>location.href='$url'</script>
</head></html>
Run Code Online (Sandbox Code Playgroud)

我知道我可以通过使用来解决问题data-ajax=false,但我不希望这样:

  • 我想要很好的Jquery移动过渡
  • 这在Ajax中要快得多
  • 每当框架发送重定向时,我都不想为每个链接感到疑惑

有没有办法让JQuery Mobile正确处理一种重定向?HTTP,HTML META还是Javascript?

Rap*_*vet 8

JQuery移动社区的帮助下,我提出了一个优雅的解决方案,可以处理标准的HTML重定向(data-ajax="false")和JQM页面转换.

诀窍在于,在进行JQM转换时,JQM使用javascript加载结果HTML; 搜索页面`data-role ='page'并将其替换为DOM:它忽略了HTML标头.

因此,我们必须在标头中放置标准的Javascript重定向,并在虚拟页面中加载JQM页面.

这是我的MVC模板中的重定向方法的代码:

<html>
    <head>
        <!-- HTML reload (for data-ajax=false) -->
        <script>
            location.href='<?= $url ?>'
        </script>
    </head>
    <body>
        <!-- Change page : JQueryMobile redirect -->
        <div data-role="page" id="redirect">
            <script>
                $.mobile.changePage('<?= $url ?>');
            </script>
        </div>
    </body>
</html>
Run Code Online (Sandbox Code Playgroud)

我希望这可以帮助别人.