3

PhoneGap(最新)のJquery1.7を使用しています。AJAXを介してdivにHTMLをロードするのに問題があります。私の問題は単純です。www/ディレクトリにindex.htmlファイルがあります。そしてこれを行うjsファイル:

$.ajax({
 type:"GET",
 timeout:10000,
 dataType: "html",
 async: false,
 cache: false,
 url: "file:///android_asset/www/_liqui-cult.html",
 success: function(data) {
  $('#data_details .description').html(data); // never runs
 },
 error: function(xhr,msg){
   alert(xhr.status + ", " + msg);
   if(xhr.status == 0 || xhr.status == "0"){
    alert(xhr.responseText); // always blank, if runs
   }
 }
});

このエラーをグーグルで検索して1日を過ごした後、私はさまざまなことを試しましたが、AJAX呼び出しは成功しません。URLを単純に_liqui-cult.html(file://ベースのURLなしで)変更してみました。私も試し/_liqui-cult.htmlました。

JQueryを試してみました$.loadが、うまくいきませんでした。そのため、より詳細な$.ajax呼び出しに切り替えました。

何をしても、ステータスとして404を取得するか、URLをに変更するとhttp://_liqui-cult.htmlステータス0を取得しますが、responseTextには何も表示されません。

そこで、方程式からJQueryを取り出し、次のように単純なXMLHttpRequestを試しました。

var xmlhttp = new XMLHttpRequest();
xmlhttp.onreadystatechange=function()
{
  if (xmlhttp.readyState==4 && (xmlhttp.status==200 || xmlhttp.status==0))
  {
    $('#data_details .description').html(xmlhttp.responseText);
    $.mobile.changePage('#screen_detail');
  }
}
xmlhttp.open("GET","_liqui-cult.html", true);
xmlhttp.send(null);

繰り返しになりますが、考えられるすべてのURLパターンを試してhtmlファイルにマップしました。それでも、私が得ることができる最高のものはxmlhttp.responseTextが空白です。

では、クロスオリジンの問題はどうですか?これが私が試したことです: <access origin=".*"/> <access origin="file://*"/> <access origin="*"/>

繰り返しになりますが、さまざまなアクセス元の設定を使用して、htmlファイルにマッピングするすべての方法を試しましたが、それでもhtmlファイルをロードできません。

何か案は?

4

2 に答える 2

3

AJAXが読み込まれるhtmlファイルの名前を「_liqui-cult.html」からアンダースコア「liqui-cult.html」のない同じ名前に変更すると、問題が修正されました。

于 2012-06-05T16:59:47.490 に答える
0

プロジェクトに何か問題があるようです。次の要点には、私のテストアプリケーションのファイルがいくつかあり、Androidでは問題なく動作します。

https://gist.github.com/2873186

于 2012-06-05T07:00:49.710 に答える