3

我遇到了一个问题,只有少数用户报告他们无法通过移动网络互联网使用我的应用程序(需要访问互联网)。他们根本无法访问网络以登录应用程序。但是该应用程序可以通过 wi-fi 连接完美运行。

该请求显然是跨域的,并且服务器 API 被编程为接受跨域请求。

登录服务器显示当用户尝试时甚至没有收到呼叫。

jQuery Ajax 调用总是在进程启动后立即返回失败回调。

我已经检查了通常的嫌疑人,他们都没事。

<access origin="*" />

在我的 Android Manifest.xml

<uses-permission android:name="android.permission.INTERNET" />

我已经尝试让用户完全卸载该应用程序,然后重新安装。没有骰子。

我难住了。谁能在这里指出一个可能的解决方案。

使用 Cordova 版本 3.1.0 和 Android 最低 SDK 为 15 (4.0.1)

非常感谢。

4

1 回答 1

1

我们终于找到了它的底部。

这是一个 DNS 问题。我们的主要 Web 应用程序是 Google App Engine 托管的应用程序,我们在其中使用通配符子域。

Android 应用程序还会联系同一域 (mobile.{domain}.com) 下的子域,但这托管在单独的服务器上,不依赖于 GAE。在移动网络上来自 Android 应用程序的调用一直转到 GAE 应用程序,而不是我在 mobile.{domain}.com 上设置的 API 端点,猜测这是移动互联网的某种 DNS 传播问题。

但更重要的是,子域并不是新的,它们已经有几年的历史了。

为了解决这个问题,我设置了一个我们域的 .net 指向同一个服务器,设置了一个端点,现在一切都很好。

于 2013-11-19T17:09:11.270 回答