是啥导致 Android Chrome 上的网络请求被取消

Posted

技术标签:

【中文标题】是啥导致 Android Chrome 上的网络请求被取消【英文标题】:What's causing cancelled network requests on Android Chrome是什么导致 Android Chrome 上的网络请求被取消 【发布时间】:2018-01-29 12:18:27 【问题描述】:

android 设备上的某些 Chrome 上,我们看到 Chrome 开发工具中的请求被取消。

它似乎只发生在遵循 /content/:uuid 路径格式的文章的 URL 和 www 子域上,我们认为我们已经将其范围缩小到了这一点,而不是所有文章,因为带有虚 URL 的内容不会t 似乎取消了。

发生的情况是这些请求显示为已取消,然后立即请求再次发出但未取消。

大多数情况下这很好,浏览器会加载请求的页面,但是偶尔从www.ft.com点击文章的链接会首先取消原始请求,然后,它不会重新发出对内容的请求,而是重新请求他们已经在的页面,在本例中为www.ft.com

在发生此错误的设备上,初始取消请求将一直发生,但原始页面的重新加载是间歇性的(可能 6 次中有 1 次?)。

被取消的请求,最终通过:

取消的请求,重新加载原始页面:

错误出现在这些设备上:

Chrome 版本:59.0.3071.125,Android 版本:7.1.2,型号:Pixel Chrome 版本:59.0.3071.125,Android 版本:7.1.2,型号:Nexus 6P Chrome 版本:59.0.3071.125,Android 版本:5.0.0,型号:Note 3

这些设备上不会出现错误:

Chrome 版本:59.0.3071.125,Android 版本:7.0,型号:Moto G5 Chrome 版本:59.0.3071.125,Android 版本:7.0,型号:Galaxy S7 (mini) Chrome 版本:59.0.3071.125,Android 版本:7.1.1,型号:OnePlus 3

它与What does status=canceled for a resource mean in Chrome Developer Tools? 有点相关,但我们很确定我们已经排除了接受答案中的原因。

我们尝试过但没有帮助的调试:

禁用 javascript 禁用我们的跟踪 Javascript 禁用我们的广告 禁用我们的服务人员 禁用application cache

禁用 Javascript 确实改变了行为,我们看到请求仍然被取消,但没有看到它重新加载原始页面,就像我们在启用 Javascript 时看到的那样。

其他观察:

点击 Chrome Devtools 设备模拟中的链接不会导致请求取消,只会直接使用设备。

【问题讨论】:

所以我使用的是 Android 7.1.2、Chrome 60.0.3112.107,没有任何问题。然而,其他 Chrome 60 用户以及其他 Android 版本都遇到了这个问题,因此它看起来并不特定于任何软件版本。 确认当前 60.0.3112.116(LG 5X,奥利奥)上的错误,确认当前 beta 62.0.3202.19 上的工作......等待更新是唯一的方法吗? :( 【参考方案1】:

所以这种特殊情况是因为当前版本的 Chrome 中存在一个错误,当安装了一个处理深层链接的应用程序时。

在我的手机(一加 3,Chrome 60.0.3112.107)上,我无法重现被取消的请求或错误的重定向,直到我在手机上安装了 FT 应用程序。

安装应用程序后(我假设它设置为处理 www.ft.com/content/ 模式的链接),单击文章链接会显示弹出窗口,以决定我是要在应用程序还是 Chrome 中打开。这反映为“网络”选项卡中的已取消请求。即使选择始终在浏览器中打开,这些链接也会显示为已取消并重新请求(错误地指向主页,或指向正确的文章)。

我可以在安装了各自应用程序的 FT 和 WSJ 上重现此问题,这意味着这是当前版本的 Chrome 中的一个错误。

但是,在 Chrome Beta (v61.0.3163.60) 或 Chrome Canary 中不会发生相同的行为 - 所以我它现在已得到修复...

【讨论】:

所以我们已经在 Chrome v59 和 v60 中看到了它。我会看一下错误报告。 可能是bugs.chromium.org/p/chromium/issues/… 之一。 该问题在最新的 Chrome (v 61.0.3163.100) 中仍然存在。但我在 Chrome Canary (v 63) 中对其进行了测试,但问题未重现。

以上是关于是啥导致 Android Chrome 上的网络请求被取消的主要内容,如果未能解决你的问题,请参考以下文章

Chrome Android 上的网络 NFC

是啥导致 Chrome 页面底部出现此空白?

Android 版 Chrome 中的自定义网络通知声音

是啥赋予了!? Mac 上的 Chrome 不会清除自动填充数据

Android Chrome 上的 HTML 画布不滚动窗口

在android中从网络下载图像数据的最佳方法是啥