3

我的应用程序Jquery/Jquery Mobile/RequireJS在前端和Coldfusion8/MySQL 5.0.88/Apache后端运行。

我在用着

  <meta name="apple-mobile-web-app-capable" content="yes" />

在我的页眉中,它允许在 iOS 上以全屏模式运行应用程序。

但是,这会破坏 Jquery Mobile 用于从页面 A 更改到页面 B 的 AJAX 导航(页面是通过 AJAX 调用拉入的)。AJAX 请求失败(error loading page短暂闪烁)并且要加载的页面正在加载,从而重新启动我的应用程序。

我这两天一直在前端寻找原因,可以排除以下所有情况:

  • requireJS 缓存文件(使用 cache-bust 配置)
  • 一般的requireJS(完全删除它)
  • 离线设置(没有使用清单文件,添加了 isLocal:true 以获得良好的衡量标准)

我已经通过 Jquery Mobile ( loadPage function fails) 通过 Jquery.Ajax 将错误追踪到在 Jquery 中发出 AJAX 请求的行:

  xhr.send( ( s.hasContent && s.data ) || null );

如果我在全屏模式下运行应用程序,则此xhr.sendajax 请求返回readystate=0readystate=200在任何桌面或移动浏览器上运行的情况相比。

问题:
我很确定我可以排除前端的东西是罪魁祸首。我的问题是从哪里开始查看服务器端。我没有使用任何 Coldfusion 代码来处理 AJAX 页面请求,所以我想知道从哪里开始寻找或测试可能的原因。所以我的问题是:在全屏模式下失败的原因可能是什么?这一定与Coldfusion有关还是我必须看apache?我会错过一些设置httpconfig吗?

谢谢指点?

4

1 回答 1

1

这看起来完全是客户端。Apache 和 CF 甚至会知道(或关心)应用程序是否在全屏模式下运行。

您可以尝试的一项测试是以全屏模式查看网站页面时转储并记录发送的 http 标头,也许它正在发送一些让 Apache 关闭的东西。我不知道它会是什么,但这就是我可能开始的地方。

于 2012-08-22T02:07:14.823 回答