2

我有一个 Android PhoneGap 应用程序,它使用 getJSON 方法对服务进行各种调用。在调试或将调试 APK 安装到设备上时,所有这些调用都可以正常工作。当我创建 APK 以在同一设备上发布和安装时,它们开始失败。

下面的代码是一个例子。控制台中记录的以下功能的错误是

登录失败: 错误: : {"readyState":0,"responseText":"","status":0,"statusText":"error"}

            function getAppServerUrl(org, callBack) {
                console.log('call locator service : ' + org);
                $.getJSON('https://url_removed/loc/locator?id=' + org,
                    function (data) {
                        console.log('getAppServer returned ' + data);
                        appServer = data + '/';
                        callBack();
                    }).fail(function (jqXHR, textStatus, errorThrown) {
                        console.error('Login failed : ' + textStatus + 
                           ' : ' + errorThrown + 
                           ' : ' + JSON.stringify(jqXHR));
                    });
            }

我检查了 config.xml 包含访问源

<access origin="https://url_removed"/>

我什至添加了一个通配符

<access origin="*"/>

提前致谢,,,

4

1 回答 1

3

好的,我做了更多的挖掘并找到了我的答案。第一个线索是从 https 更改为 http 似乎可以治愈它。

从那里我找到了一些相关的帖子。我呼叫的服务器似乎没有正确安装 SSL 证书。正如下面的帖子所说,服务器在桌面上看起来很好,但在 Android 浏览器上却失败了。

证书受 PC 信任,但不受 Android 信任

这个问题直到应用程序的签名版本才出现,因为 Phonegap 在调试时允许错误的证书。

PhoneGap Ajax 调用带有自签名证书的 HTTPS 服务器失败

希望此信息可以帮助其他有类似问题的人。

于 2013-07-17T08:44:32.477 回答