My app is running Jquery/Jquery Mobile/RequireJS on the front end and Coldfusion8/MySQL 5.0.88/Apache on the backend.
I’m using
<meta name="apple-mobile-web-app-capable" content="yes" />
in my page headers, which allows to run the app in fullscreen mode on iOS.
However this breaks the AJAX navigation used by Jquery Mobile to change from page A to page B (pages are pulled in via AJAX calls). The AJAX request fails (error loading page briefly blinking) and the page to be loaded is loading fresh, thereby restarting my app.
I have been looking for causes on the front end for two days now and can rule out all of the following:
- requireJS caching files (used cache-bust config)
- requireJS in general (removed it completely )
- offline settings (no manifest file being used, added isLocal:true for good measure)
I have chased the error through Jquery Mobile (loadPage function fails) through Jquery.Ajax down to the line where the AJAX request is made in Jquery:
xhr.send( ( s.hasContent && s.data ) || null );
If I’m running the app in fullscreen mode, this xhr.send ajax request returns readystate=0 vs. readystate=200 if running on any desktop or mobile browser.
Question:
I’m pretty sure I can rule out front end stuff being the culprit. My question is where to start looking on the server side. I’m not using any Coldfusion code to process AJAX page request, so I’m wondering where to start looking or testing for possible causes. So my question would be: what could be reasons this fails in fullscreen mode? does this necessarily have to do with Coldfusion or do I have to look on apache? Could I be missing some setting in httpconfig?
Thanks for pointers?
This looks entirely client side. Apache nor CF would even know (or care) if the app is running in Full screen mode.
One test you can try is dumping and logging the http headers sent when viewing a site page in full screen mode, maybe it is sending something that’s throwing Apache off. I don’t know what it would be, but that’s where I might start.