PHP header()和jQuery Mobile

12

我想使用php header('Location: newpage.php')进行重定向。

我没有收到错误信息,但是Jquery mobile似乎无法加载目标页面,地址栏也保留了旧地址。

请问您有什么建议吗?

谢谢!


如果PHP的header()无法重定向,你认为jQuery Mobile有问题吗?你有代码链接吗? - jshawl
5
好的,问题已经解决了。我的header('')指令没有错误。问题出现在此之前。实际上,我尝试在从页面本身提交的POST方法表单接收元素后使用此header。我将data-ajax="false"放入FORM的属性中,这解决了这个问题。感谢大家。 - user1083877
5个回答

14

在使用php的header()重定向之前,尝试在调用页面时添加data-ajax="false"标签。


这与ajax无关。PHP头部位置应该在任何HTML之前调用。 - Cymbals
1
你是对的Cymbals,但多亏了Wenkhairu,我记起来我曾经在jquery移动站点上将data-ajax="false"放在所有的FORM上,我只是忘记在这个上面加了... - user1083877
1
实际上是这样的,因为jQM将所有<a>调用更改为XHR,然后解析响应。这意味着它取决于您的浏览器的行为。但自从那时起,现在已经到了2014年,似乎在任何地方都可以正常工作 :) - Erdal G.

1

0

我在Node.js + JQM上遇到了同样的问题,wenkhairu提供的答案解决了它。 问题在于JQM劫持了导航行为并使用ajax进行导航,如果像wenkhairu建议的那样放置data-ajax=false,则告诉JQM不要劫持此表单的导航,并使用常规链接/提交行为。


0

我经常使用header('Location:newpage.php')和JQuery Mobile组合使用,它一直正常工作。

我怀疑你正在尝试在加载任何HTML后发送头文件,这将无法正常工作。PHP头文件 必须 在任何输出之前出现,包括HTML、JQuery Mobile等。


-1

尝试打开错误报告:

ini_set('error_reporting', E_ALL);
ini_set("display_errors","1"); 

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接