Phonegap,发布版本中的Android getJSON调用

时间:2013-07-16 14:46:49

标签: android cordova

我有一个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="*"/>

提前谢谢,,,

1 个答案:

答案 0 :(得分:3)

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

从那里我发现了几个相关的帖子。我正在调用的服务器似乎没有正确安装SSL证书。如下面的帖子所示,服务器在桌面上显示正常,但在Android浏览器上失败。

Certificate is trusted by PC but not by Android

问题直到签名发布版本的应用程序才显示,因为Phonegap在调试时允许使用错误的证书。

PhoneGap Ajax call to HTTPS server with self-signed certificate fails

希望这些信息可以帮助处理类似问题的其他人。