現在、PhoneGap を使用してプロジェクトを開発しており、すでにあるローカル Web サーバーに対して ajax 要求を行う必要があります。
PHP コード
header('Access-Control-Allow-Origin: *');
とにかく、Android で jQuery を使用して ajax リクエストを実行すると、次のエラーが発生します (adb logcat で):
D/chromium(23078): Unknown chromium error: 0
Javascript コードは次のとおりです。
$.ajax({url:"http://192.168.1.219/works/privati/folder/api.php/getlastmaginfo",dataType:"json",success:function(data)
{
console.log("Finished loading by ajax");
console.log(data);
}});
Ripple Emulator では期待どおりに動作しますが、Android では違います。
なにか提案を?お手伝いありがとう!
更新 2013 年 8 月 21 日:
いくつかの調査の後、$.ajax は PhoneGap では動作しないという結論に達しました (理由がわからない、おそらくバグ?)。代わりに $.get を使用する必要がありますが、$.get を使用してリクエストを行うUnknown chromium error: -6
と、問題は Android の WebView URL メカニズムのバグによるものであることがわかります。
うまく機能する解決策が見つかるまで、調査を続けます
UPDATE 2013-08-21 (2): これを使用しても機能しません...
var fileTransfer = new FileTransfer();
fileTransfer.download(
"http://192.168.1.219/works/privati/qlipmag/api.php/getlastmaginfo",
"json.json",
function(entry) {
console.log("OKAY");
},
function(error) {
console.log(error);
}
);
エラーはnew FileTransfer();
=>Uncaught ReferenceError: FileTransfer is not defined
更新 2013 年 8 月 22 日:
外部画像を読み込んでも機能しません:
<img src="http://externalhost.com/image.jpg"/>
同じエラー。
Android マニフェスト ファイルでは、既にアクセス許可を設定しています。
<uses-permission android:name="android.permission.INTERNET" />
問題がどこから来るのかはよくわかりません...
UPDATE 2013-08-27: PhoneGap for iPhone (iPhone Emulator 内) で同じコードを試したところ、外部 Web サイトを使用したときに ajax 要求が成功しました。Android でも外部 Web サイトを使用しても、同じ結果は得られません。同じエラー。
誰でも理由がわかりますか?アクセス元が細かく設定されている...