Store无法从外部源读取xml,但可以在从本地源读取时执行此操作

时间:2014-04-22 18:08:02

标签: extjs sencha-touch sencha-touch-2.3

我需要从位于远程服务器上的数据源中读取内容(我无权修改任何内容)

我已经尝试了几天来获取内容,但是没有用。

我做的是我下载了这个数据源,这是一个xml文件,并将其放在我的代码所在的相同文件夹下,以测试我的代码语法的正确性,并发现代码有效。

但是当我改回外部数据资源时( from:url:' app / store / configuration.xml' to:url:' http://webtrak.bksv.com/mel/configuration' ),它仍然可以读取但不返回任何内容。

这不是由CORS问题引起的,因为我在真实设备上测试我的应用程序。

这是我的商店和模特。请帮忙

Ext.define('myApp.store.SensorStationStore', {
    extend: 'Ext.data.Store',
    requires: ['myApp.model.SensorStation', 'Ext.data.reader.Xml'],
    config:{
        model: 'myApp.model.SensorStation',
        storeId: 'SensorStore',
        autoLoad: true,
        proxy: {
                 type: 'ajax',
                 url: 'http://webtrak.bksv.com/mel/configuration',
                 //url: 'app/store/configuration.xml',
                 reader: {
                     type: 'xml',
                     record: 'locations',
                     rootProperty: 'nmts'
                 }
              }
           }

        });

Ext.define('myApp.model.SensorStation', {
    extend: 'Ext.data.Model',
    config: {
        fields: [
            {

                name: 'name', 
                type: 'string',
                mapping: '@name'
                //convert: function (value, record) {
                //    Ext.Msg.alert(value,record.raw);
                //    //var nodes = rec.raw.querySelectorAll('');
                //}
            },
            {
                name: 'lat',
                mapping: '@latitude',
                type: 'float'
            },
            {
                name: 'lng',
                mapping: '@longitude',
                type: 'float'
            },
            {
                name: 'locid',
                mapping:'@locid',
                type: 'string'
            }
        ]
    }
});

谢谢。

1 个答案:

答案 0 :(得分:2)

我弄清楚问题是什么......我从未使用过XML,所以我不知道ajax请求的响应是什么样的,但是通过应用以下代码来存储将填充您应用的商店(代码中稍有变化)

代码:

Ext.define('myApp.store.SensorStationStore', {
    extend: 'Ext.data.Store',
    requires: ['myApp.model.SensorStation', 'Ext.data.reader.Xml'],
    config:{
        model: 'myApp.model.SensorStation',
        storeId: 'SensorStore',
        autoLoad: true,
        proxy: {
            type: 'ajax',
            url: 'http://webtrak.bksv.com/mel/configuration',
            //url: 'app/store/configuration.xml',
            reader: {
                type: 'xml',
                record: 'locations',
                rootProperty: 'nmts'
            }
        }
    } });

您正尝试在配置对象之外应用商店配置。干杯!!