Ajax json数据未被加载到数据存储区

Ajax json数据未被加载到数据存储区

问题描述:

当我在数据存储区内有'data:... raw json'配置成员时,我的数据存储区工作正常,但是当我尝试通过ajax加载时,它不工作。Ajax json数据未被加载到数据存储区

new Ext.data.Store({ 
     model: "SearchResult", 
     proxy: { 
      type: "ajax", 
      url : "test.php", 
      extraParams : 'test', 
      reader: { 
       type: "json", 

      } 
     }, 

    }); 

注:test.php的根据铬被调用,又呼应了:

{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' } 

任何想法我做错了吗?

+0

你能提供你的模型的代码?你怎么确定它不起作用 - 抛出异常?尝试为您的商店注册一些异常处理程序。尝试在调试器中逐个浏览商店加载代码。 –

+0

我知道模型是正确的,因为当我使用'data:'配置参数手动将json数据手动放入数据存储区时,一切正常。我确定代码不工作,因为数据应该加载到列表中并且不会显示。我对异常处理程序不熟悉,在调试控制台中没有出现任何错误。谢谢。 – David

你把你的数据编码为json在php中吗? 像这样echo json_encode($ data); 这或者是或者模型与回应完全不同。

一个JSON格式看起来像这样

{'success':true,'values':[{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' },{stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }]} 


reader:{ 
        type: 'json', 
        root: 'values', 
       } 
+0

被回应的数据是json格式。我知道模型是正确的,因为当我使用'data:'配置参数手动将json数据手动放入数据存储区时,一切正常。 – David

+0

我不认为json是正确的 – nscrob

您需要为您的JSON “数据” 包装:按照铬和回声test.php的被调用:

{"data":[... your JSON ...],"total":9999999,"success":true} 
+0

不,他没有。他没有指定记录的“root”配置。文档说'默认情况下会使用数据的自然根。根Json阵列' –

+0

是的,但他仍然需要[]括号......否则它不会是json阵列 – nscrob

+0

@nscrob,当然。我的意思只是'你需要一个“数据”包装器部分。 –

注出售:
'库存: '汤米',店电话:'353535',年:'1984',使:'法拉利',修剪: '修剪',英里:'12345',店名:'分行名称}} ,
{stock:'Tommy', storePhone:'353535',year:'1984',make:'Ferrari',trim:'trim', miles:'12345',storename:'branch name'},
{股票: '汤米', storePhone: '353535',年: '1984年',使: '法拉利',修剪: '微调', 英里: '12345',STORENAME: '分支名称'}

方括号在哪里?对于你的商店配置,响应应该看起来像

// Notice the square brackets 
[ 
    {stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }, 
    {stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' }, 
    {stock: 'Tommy', storePhone: '353535', year: '1984', make: 'Ferrari', trim: 'trim', miles: '12345', storename: 'branch name' } 
]