我有一个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="*"/>
提前谢谢,,,
答案 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
希望这些信息可以帮助处理类似问题的其他人。