完全に回答されていない非常によく似た質問を見ました。ここです。
基本的な問題は、Android の Phonegap で動作する XmlHttpRequest AJAX 呼び出しを最終的に取得したことですが、キャッチは Android エミュレーターでのみ動作することです。
エミュレーターで実行すると、XML 応答でアラートが表示されます。デバイスで実行すると、何もないアラートが表示されます。空白です。
私は最新の Phonegap 1.9 を実行しており、エミュレーターは Android 2.3.3、API レベル 10 を実行しています。デバイスは 2.3.5 を実行している Samsung Galaxy S です。
リクエストを行うために使用される JavaScript は次のとおりです。
function sendXMLRequest() {
request = new XMLHttpRequest();
request.open("POST","http://www.xxx.com/path/to.cgi",true);
request.onreadystatechange = function() {
if (request.readyState == 4) {
if (request.status == 200 || request.status == 0) {
alert("Server responded with: " + request.responseText);
}
}
}
postdata = "big long XML string that I've quadruple checked";
try {
request.send(postdata);
} catch(e) {
console.log(e);
alert("Error, could not locate vehicle, please try again later.");
}
}
私は cordova.xml と plugins.xml を持っていて、すべての権限を持っています。マニフェストで INTERNET 権限を削除しようとしました。デバイスには間違いなくインターネット接続があります。
助けてくれてありがとう、感謝します。