Iphone 如何在phonegap中通过ajax调用访问本地文件?

Iphone 如何在phonegap中通过ajax调用访问本地文件?,iphone,web-applications,cordova,sencha-touch,Iphone,Web Applications,Cordova,Sencha Touch,我有这段代码用于加载存储在phonegap(iPhone)项目的同一目录中的json文件(通常在“www”文件夹中),我如何才能访问“routes.json”?。我的项目有以下树文件夹: __万维网/ ___index.html ___index.json(此代码位于何处) ___routes.json* store: new Ext.data.Store({ model : 'routes', pro

我有这段代码用于加载存储在phonegap(iPhone)项目的同一目录中的json文件(通常在“www”文件夹中),我如何才能访问“routes.json”?。我的项目有以下树文件夹:

__万维网/

___index.html

___index.json(此代码位于何处)

___routes.json*

  store: new Ext.data.Store({
                    model  : 'routes',
                        proxy: {
                            type: 'ajax',
                                  url : 'file://??????/www/routes.json',
                            reader: {
                                type: 'json'
                         }
                    },
                    autoLoad: true
                })

像对待服务器上的目录一样对待PhoneGap的www目录。您可以创建任意多个子文件夹,并且可以引用具有相对链接的文件


正如YDL所提到的,如果您试图访问index.json,并且它位于www文件夹的根级别,那么您可以使用:
index.json
。另一个例子是,如果您有一个名为data的子文件夹,其中包含所有json文件,那么您将使用:
data/index.json

我认为这是Sencha Touch Ext.data.Proxy实现中的一个错误。我花了几个小时试图得到这项工作,但没有成功。我用jQuery实现它不到5分钟

//Initialize the Store
new Ext.data.Store(
  { 
    model: "Routes", 
    storeId: "Routes",
    //The Proxy isn't used but it is a required configuration option
    proxy: {
      type: 'ajax' 
    }
});

//Populate the store using jQuery.get()
$.get('routes.json',
      function(data, status, jqXHR) {
        if(status == "success") {
          var store = Ext.StoreMgr.get('Routes');
          store.loadData(data);
        }
      });  

如果json文件与您的主Javascript文件位于同一文件夹中,您应该能够使用“url:routes.json”。这是我尝试的第一件事,没有结果。事实上,应用程序始终显示加载微调器,而不加载任何内容……您能发布json文件的一部分吗?这是json文件:[{“nome”:“Borgo e Centro”,“隆格萨”:“2公里”,“杜拉塔”:“1,5矿石”,“身份证”:“1”},{“诺姆”:“商业”,“隆格萨”:“2公里”,“杜拉塔”:“1,5矿石”,“身份证”:“2”},{“诺姆”:“帕奇”,“隆格萨”:“2公里”,“杜拉塔”:“1,5矿石”,“身份证”:“2”]但我在phonegap应用程序中没有服务器。因此它需要绝对路径…虽然…在电脑上打开html文件时的行为相同,但实际上在地址栏中会显示完整路径。正确的说法是,在电脑上打开html文件时,地址栏会显示文件位置的完整路径。但是,您仍然可以使用rela在你的HTML文件中使用动态链接/路径,它们仍然可以正常工作。PhoneGap www文件夹也是如此。你应该在PG项目中使用相对路径,而不是绝对路径。我尝试过这个方法,但结果相同……我也尝试过“/routes.json”……但没有任何结果……我认为相对路径只在HTML文件中工作。。。