微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

javascript – Ajax调用失败,但仅限于某个单元操作符

我有一个在www.example.com上运行的网站.加载页面时,将获取一个JavaScript文件,该文件对xyz.subdomain.example.com进行Ajax调用.

一切都适用于我测试过的每个平台/浏览器.当我在我的Android手机上运行时,事情就会失败(无论使用哪种浏览器,如果启用WiFi,情况都会有效).然而,事情在我妻子的手机上正常工作,该手机连接到不同的操作符(是的,我们有2家公司 – 长篇故事).

当事情失败时,我收到的状态为0,没有附加文本.我的直觉是,这可能是一个CORS问题,但谁能接听电话?我认为浏览器确实如此,我相信操作系统,但我不能接受操作符这样做.

关于发生了什么还有其他解释吗?知道如何解决这个问题吗?

编辑

我已经取得了一些进展,但还没有解决问题.感谢所有帮助过的人.

我原来的解释有点简化.我实际上是想去random.xyz.subdomain.example.com,然后看看在DNS服务器上发生了什么(我控制).

无论如何,我决定安装termux,它很棒.这是我发现的:

dig random.xyz.subdomain.example.com

解决正确. FWIW,谷歌DNS正在这里使用.

curl random.xyz.subdomain.example.com

收到错误:curl:(6)无法解析主机random.xyz.subdomain.example.com

好的,那是出乎意料的.域解析为dig,但curl有问题.

此时我打开手机上的WiFi

curl random.xyz.subdomain.example.com

正确返回了一堆数据.

这看起来有点奇怪.我认为这意味着操作符不是问题,电话是.或者更具体地说,手机中的移动代码因为WiFi工作得很漂亮.这是正确的吗?我还应该测试什么?

如果这意味着什么,这款手机是运行Android 5.1.1的三星galaxy Grand Prime(SM-G530W)

编辑2

我对挖掘和卷曲之间的不同行为感到不安,并开始研究它.我确实看到有些人参考了这个问题但没有完全解决它.我还注意到,我在手机上找到的行为也可以从库存的AWS Linux实例中复制.

我还意识到解析控制random.xyz.subdomain.example.com区域的名称服务器名称的过程非常复杂.它包括通过3个不同公司控制的资源跟踪一些CNAME.整个过程有效,但显然不适用于某些情况.

无论如何,我使这个名称服务器的名称解决方案变得更加简单,现在无处不在.我认为最终的问题是Linux网络中的一些较旧的和错误的库,它没有正确解析或处理很少发生的某些情况.

解决方法:

在Android上有很多方法可以调试它,最简单的方法是将chrome的远程调试器连接到有问题的手机,并检查控制台和网络选项卡以获得进一步的解释.

如果它没有帮助,请谷歌你的isp / cell提供商,手机型号,以防它是一个已知的“功能”.

您可以从服务器的角度检查您的远程IP,或者只是询问谷歌“我的IP是什么”,“我的用户代理是什么”.安全/隐私/其他好的或坏的愿意(有时是系统)应用程序可能会劫持http流量.

如果它是一个网络问题,并且您熟悉控制台,那么获得像termux这样的应用程序可能会有很大帮助. curl,ping,traceroute等标准工具可能有助于确定根本原因.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐