【发布时间】:2012-07-22 06:51:51
【问题描述】:
我是 Android 新手。我正在 Phonegap 中开发一个应用程序,并实现了 ajax 调用以使用 HTTPS 协议与服务器通信。当我在清单文件中将 debuggable 设置为 true 时,它工作正常。如果我将其更改为 false,则它不起作用。请帮我。
提前致谢。
【问题讨论】:
标签: android jquery jquery-mobile cordova
我是 Android 新手。我正在 Phonegap 中开发一个应用程序,并实现了 ajax 调用以使用 HTTPS 协议与服务器通信。当我在清单文件中将 debuggable 设置为 true 时,它工作正常。如果我将其更改为 false,则它不起作用。请帮我。
提前致谢。
【问题讨论】:
标签: android jquery jquery-mobile cordova
您正在使用的网络服务需要有一个有效的证书,一个不是自签名的。否则 SSL 将失败。
见here
【讨论】:
在 Android 4.0+ 中出现的另一个问题(但在 2.3 等旧版本中没有)...您必须在发送前手动设置 Authorization 标头。使用新的用户名:密码:在 jQuery 1.7 中添加的选项不起作用。
以下示例说明了您必须执行的操作。
注意:这需要 base64 jquery 插件。
$.ajax({
url: "https://yoururl,
type: method,
dataType: 'json',
// username: username, // Doesn't work on ANDROID
// password: password, // Doesn't work on ANDROID
beforeSend: function (xhr)
{
xhr.setRequestHeader("Authorization", "Basic " + $.base64.encode( username + ":" + password ));
},
data: options.data,
success: function(response) {
},
error: function(jqXHR, textStatus, errorThrown) {
}
});
【讨论】: