iOS Web page errors over Cellular Data but not ove

2019-01-15 16:48发布

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.

标签: ios web wifi cell
2条回答
等我变得足够好
2楼-- · 2019-01-15 17:00

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>
查看更多
冷血范
3楼-- · 2019-01-15 17:10

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.

查看更多
登录 后发表回答