使用 PhoneGap,无法仅在 Android 上使用 Ajax 加载本地 .html 文件

2023-12-29

我正在使用 PhoneGap(最新)、Jquery 1.7。我在通过 AJAX 将一些 html 加载到 div 中时遇到问题。我的问题很简单,我在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
   }
 }
});

我花了一天时间在谷歌上搜索这个错误,尝试了很多方法,但 AJAX 调用从未成功。我尝试将网址更改为简单的_liqui-cult.html(没有基于 file:// 的 url)。我也尝试过/_liqui-cult.html.

我开始尝试使用 JQuery$.load,这不起作用,所以我改用更详细的$.ajax call.

无论我做什么,我要么得到 404 作为状态,要么,如果我将 url 更改为http://_liqui-cult.html,我得到的状态为 0,但响应文本中没有任何内容。

因此,我将 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 文件。

有任何想法吗?


将 AJAX 加载的 html 文件的名称从“_liqui-cult.html”更改为不带下划线的相同名称“liqui-cult.html”解决了该问题。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 PhoneGap,无法仅在 Android 上使用 Ajax 加载本地 .html 文件 的相关文章

随机推荐