iOS网页错误通过蜂窝数据但不是通过Wifi?最近对 AT&T 蜂窝网络的更改?
Posted
技术标签:
【中文标题】iOS网页错误通过蜂窝数据但不是通过Wifi?最近对 AT&T 蜂窝网络的更改?【英文标题】:iOS Web page errors over Cellular Data but not over Wifi? Recent change to AT&T Cellular network? 【发布时间】:2014-10-25 08:35:01 【问题描述】:我在某些 ios 网页(在移动 Safari、Chrome 以及应用程序中的 iOS Webviews 中)通过蜂窝数据与 Wifi 时遇到问题,
此问题与其他人之前在此处发布的问题相同:
Mobile Safari Cellular Only Loading Error
很遗憾,上述网址尚未发布任何答案。
基本上,我一直在 html 中看到来自蜂窝数据的无关随机垃圾字符,但通过 Wifi 加载同一页面完全正常。这不是下载速度或连接不良的问题,它似乎是蜂窝网络上的一些莫名其妙的数据传输/解释故障。我已经能够在不同的位置和不同的设备上复制同样的问题。
这里是一个可以通过 Wifi 正常加载但在数据上加载错误(javascript 和 CSS 错误,因为前面提到的无关垃圾字符)的页面示例:
http://www.ear-say.com
有没有其他人遇到过同样的问题?任何见解都非常感谢。
【问题讨论】:
【参考方案1】:内容类型不是问题,但这让我更多地思考页面是如何在我的服务器、网络和最终客户端之间转换的。
经过反复试验,我消除了 JQuery 引用,然后页面在 AT&T 蜂窝数据上正确加载。这导致了另一个 Google 搜索,并最终根据以下 URL 找到了问题的答案:
http://bugs.jquery.com/ticket/8917
... 上面的 JQuery 错误报告引用了这两个 URL 的修复,其中一个实际上来自 ***:
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
总而言之,问题在于 AT&T 蜂窝数据网络最近发生的变化,类似于上述 URL 中所述的变化。即 AT&T 在将其发送到 iPhone 和 iPad 之前以某种方式修改某些 Web 内容。修复很简单,只需为您不想被 AT&T 网络更改/转换的页面设置 Cache-Control “no-transform”标头即可。
我正在通过以下方式在 php 中手动设置选择页面的标题:
header("Cache-Control: no-transform");
....但我认为它可以在目录的 .htaccess 文件中全局设置,或者在虚拟主机文件中的域或 httpd.conf 文件中的整个服务器中设置,例如:
标头集缓存控制“无转换”
我不知道设置“no-transform”会如何影响性能,我远不是 Apache 配置设置或网络方面的专家,但以上至少目前解决了最初的问题。
【讨论】:
我应该补充一点,AT&T 的整个转换问题似乎只是旧 LAMP 堆栈上的问题。较新的和最新的(较新的 Linux、Apache 和 PHP 版本)服务器堆栈似乎没有表现出相同的服务器/网络转换问题,因此不需要“无转换”标头修复。【参考方案2】:我遇到了同样的问题,并从另一个帖子中找到了解决方案 Remove wierd characters in xml output
您必须为您的内容设置标题,AT&T 才能正常工作。在您的示例中,我认为它是 text/html,因为它是 html。
<head>
<title>Page name</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
</head>
【讨论】:
谢谢您,蒂佩特先生。请看我的回答,设置 Cache-Control “no-transform” 标头似乎已经解决了这个问题。【参考方案3】:我遇到了问题,发现我在 DNS 和 FireWall 上配置了 IPv6,但在服务器上没有配置。
从 DNS 中删除 IPv6,一切正常。
您可以使用https://ipv6-test.com/validate.php 进行测试。
【讨论】:
以上是关于iOS网页错误通过蜂窝数据但不是通过Wifi?最近对 AT&T 蜂窝网络的更改?的主要内容,如果未能解决你的问题,请参考以下文章
iOS 应用程序可以在通过 WiFi 进行“无线配件配置”时使用蜂窝互联网连接吗?
奇怪的NSURLSessionDownloadTask行为通过蜂窝(不是wifi)
设备在Android中连接到WiFi时如何获取蜂窝网络的IP地址