"您正在尝试解码无效的JSON字符串"但它是一个PHP

时间:2014-09-01 14:17:08

标签: php ajax extjs mvvm

美好的一天,

我是 extjs 5 和mvvm的新手。我想制作一个ajax请求,以便显示一个带有php的数据的treepanel。

这是我的商店

Ext.define('MyApp.store.servicesStore', {
    extend: 'Ext.data.TreeStore',
    // alias: 'store.servicesStore',
    storeId : 'servicesStore',
    model   : 'MyApp.model.servicesModel',
    proxy: {
        type: 'ajax',
        url: 'app/store/data/GetServices.php'
    },
    root: {
        text: 'Events',
        id: 'root'
    },
    autoLoad: true,
    folderSort: true
});

我已经看到“成功”可以解决这个问题,但我不需要成功,因为它只显示在treePanel

Ext.define('MyApp.view.tabServices.servicesTab', {    
    extend: 'Ext.tree.Panel',
    xtype: 'servicesTab',
    layout: {
        type: 'border'
    },
    useArrows: true,
    rootVisible: false,
     store: {type: 'servicesStore'},
    forceFit: true,
    columns: [{
        xtype: 'treecolumn',
        dataIndex: 'text',
        width: 600
    }, {
        dataIndex: 'mbt',
        cls: 'mbtcss',
        width: 80
    }, {
        dataIndex: 'bt',
        cls: 'btcss',
        width: 75
    }, {
        dataIndex: 'details', // port separated from rest
        width: 60
    }, {
        dataIndex: 'code',
        width: 80
    }]
});

因此,当我启动我的应用程序时,出现“你正在尝试解码无效的JSON字符串”,我怎么能让它理解我实际上使用的是php文件? 更确切地说,该代码在extjs 3.4中起作用

1 个答案:

答案 0 :(得分:1)

要运行在ExtJS 4下工作的PHP代码,您必须修改PHP以返回JSON格式的数据。或者您将“启用兼容性”设置为版本4。

请参阅http://docs.sencha.com/extjs/5.0/whats_new/5.0/extjs_upgrade_guide.html#Enabling_Compatibility下的“启用兼容性”。

compatibility: {
    ext: '4.2'
}