PHP header() 和 jquery mobile
Posted
技术标签:
【中文标题】PHP header() 和 jquery mobile【英文标题】:PHP header() and jquery mobile 【发布时间】:2012-01-14 06:02:22 【问题描述】:我想使用 php header('Location: newpage.php') 来重定向。
我没有收到任何错误,但 Jquery mobile 似乎无法加载目标页面,并且地址栏仍使用旧地址。
你有什么建议吗?
谢谢!
【问题讨论】:
如果 php 的 header() 没有重定向,是什么让你认为 jQuery mobile 是罪魁祸首?您有代码链接吗? 确定已修复。我的 header('') 指令没有错误。问题来了。实际上,我在从带有 post 方法的 FORM 中接收到由页面本身提交的元素后尝试了此标头。我将 data-ajax="false" 放入 FORM 的属性中,它解决了这个问题。谢谢大家 【参考方案1】:在调用该页面时尝试添加data-ajax="false"
,然后使用php header()
进行重定向
【讨论】:
跟ajax没关系。 php 标头位置应在任何 html 之前调用。 你是对的 Cymbals 但感谢 Wenkhairu,我记得我曾经在 jquery 移动网站的所有 FORM 上都放了 data-ajax="false",我只是忘了放这个。 .. 实际上确实如此,因为 jQM 将所有 调用更改为 XHR,然后解析响应。这意味着它取决于您的导航器的行为。但从那以后,2014 年现在看起来一切都很好:)【参考方案2】:该代码向用户的浏览器发送一个 302 重定向标头,指示它重定向到提供的 URL。它应该工作。你检查过语法吗?信息在这里:http://www.php.net/manual/en/function.header.php
【讨论】:
【参考方案3】:我一直在结合 JQuery Mobile 做一个 header('Location: newpage.php') 并且它没有问题。
我怀疑您在加载任何 html 后尝试发送标头,这将不起作用。 php 标头必须出现在任何输出之前,包括 html、JQuery Mobile 等。
【讨论】:
【参考方案4】:我在 Node.js + JQM 上遇到了同样的问题,wenkhairu 给出的答案修复了它。
问题是 JQM 劫持导航行为并使用 ajax 进行导航,如果您按照 wenkhairu 的建议输入 data-ajax=false
,则告诉 JQM 不要劫持此表单的导航并使用常规链接/提交行为
【讨论】:
【参考方案5】:尝试开启错误报告:
ini_set('error_reporting', E_ALL);
ini_set("display_errors","1");
【讨论】:
以上是关于PHP header() 和 jquery mobile的主要内容,如果未能解决你的问题,请参考以下文章