我想知道是否可以获取本地的json文件? 如果有,怎么样?
我试过
function test() {
$.getJSON("c\\file.json", function(json) {
console.log(json);
});
}
和
function test() {
$.getJSON("http://localhost/file.json", function(json) {
console.log(json);
});
}
我正在使用wampserver。
答案 0 :(得分:3)
我刚刚找到了一种在不使用Phonegap File API的情况下加载本地存储的JSON文件的方法。使用Cordova 2.7.0(我只在Android设备上测试过它)对我来说非常简单易用:我使用jQuery.ajax()
伪造了一个JSONP请求。所以你的ajax调用看起来像这样:
$.ajax({
url: 'data.json',
crossDomain: true,
jsonpCallback: 'cb',
dataType: 'jsonp',
})
.fail(function (jqXHR, textStatus, errorThrown) { console.log(textStatus, errorThrown); alert('Failed to load data.'); })
.done(function (data) {
app.data = data;
});
crossDomain参数用于在同一域上强制执行跨域请求(JSONP)。我还强制回调函数名称为cb。另请注意,JSONP请求不支持同步操作。
然后你必须使用你的回调函数包装你的JSON数据:
cb(
{
"title": "the title,
"id": 1
}
);
这有点棘手,可能不是一个很好的做法。你觉得怎么样?
答案 1 :(得分:0)
尝试使用环回地址,而不是localhost,如下所示:
$.getJSON("http://127.0.0.1/file.json", function(json) {
答案 2 :(得分:0)
为了更好的编程,请使用相对路径加载JSON文件。
$.getJSON("file.json", function(json) {
console.log(json);
});
答案 3 :(得分:-2)