0

我想知道是否可以获取本地的 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。

4

4 回答 4

3

我刚刚找到了一种无需使用Phonegap File API即可加载本地存储的 JSON 文件的方法。使用 Cordova 2.7.0(我只在 Android 设备上测试过)对我来说真的很容易并且工作:我使用jQuery.ajax(). 所以你的 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
    }
);

这有点棘手,可能不是一个很好的做法。你怎么看待这件事 ?

于 2013-06-02T10:40:21.103 回答
0

为了更好的编程,使用相对路径来加载 JSON 文件。

 $.getJSON("file.json", function(json) {
    console.log(json); 
 });
于 2013-03-14T07:05:24.387 回答
0

尝试使用环回地址,而不是 localhost,如下所示:

$.getJSON("http://127.0.0.1/file.json", function(json) {
于 2012-10-08T15:03:19.580 回答
-2

试试文件格式:

file:///C:/folderA/test.html

http://www.cs.tut.fi/~jkorpela/fileurl.html

于 2012-10-08T15:02:53.223 回答