iOS Web page errors over Cellular Data but not over Wifi? Recent change to AT&T Cellular network?

自闭症网瘾萝莉.ら 提交于 2019-11-27 04:51:38

问题


I'm encountering an issue with certain iOS web pages (in both mobile Safari, Chrome, and in also iOS Webviews in app) over cellular data vs. Wifi,

The issue is identical to what was previously posted by someone else here:

Mobile Safari Cellular Only Loading Error

Unfortunately no answers yet posted to the above URL.

Basically, I'm consistently seeing extraneous random garbage characters in the HTML that comes down from cellular data, but the same page loading perfectly okay via Wifi. This isn't a download speed or poor connection issue, it seems to be some inexplicable data transfer/interpretation malfunction over the cellular network. I've been able to replicate the same problem at different locations and with different devices.

An example of a page that loads okay with Wifi but loads with errors (JavaScript and CSS errors because of the aforementioned extraneous garbage characters) over data is here:

http://www.ear-say.com

Has anyone else encountered the same issue? Any insights greatly appreciated.


回答1:


The content-type wasn't the issue, but that got me thinking more about how the pages were possibly being transformed between my server, the network, and ultimately the client.

After some trial and error I eliminated JQuery references, after which the pages then loaded correctly over AT&T celullar data. That led to another Google search, and ultimately the answer to the problem as per the below URLs:

http://bugs.jquery.com/ticket/8917

... The above JQuery bug report referenced fixes at these two URLs, one of which was actually from stackoverflow:

http://mobiforge.com/design-development/setting-http-headers-advise-transcoding-proxies

Web site exhibits JavaScript error on iPad / iPhone under 3G but not under WiFi

In summary, the issue is with a recent change at the AT&T cellular data network, similar to that described in the above URLs. i.e. AT&T is in some way modifying certain web content before sending it on to iPhones and iPads. The fix is simple, just set the Cache-Control "no-transform" header for pages you don't want changed/transformed by the AT&T network.

I'm manually setting the header in PHP for select pages via:

header("Cache-Control: no-transform");

.... but I assume it could be globally set in a directory's .htaccess file, or for the domain in the virtual host file or the entire server in the httpd.conf file, e.g.:

Header set Cache-Control "no-transform"

I don't know how setting "no-transform" will effect performance, I'm far from an expert on Apache configuration settings or networks, but the above has at least for now solved the initial problem.




回答2:


I had the same issue and found a solution from another post Remove wierd characters in xml output

You have to set the header for your content for AT&T to work correctly. In your example it would be text/html I think because it's html.

<head>
  <title>Page name</title>
  <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>


来源:https://stackoverflow.com/questions/25600332/ios-web-page-errors-over-cellular-data-but-not-over-wifi-recent-change-to-att

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!