我正在使用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 调用从未成功。我尝试将 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 文件。
有任何想法吗?