我有一个返回的VALID JSON响应,如下所示:
[{"VegetableId":4,"VegetableCode":"001","CatalogId":14,"Name":"Carrot","Description":"The carrot is a root vegetable, usually orange in colour, though purple,
请注意,上述响应只是其中的一部分,但您可以看到它没有rootElement。我怎样才能在Sencha Touch中使用它。
这是我的代理代码,但它不会填充模型。
Ext.define('MyApp.store.Vegetables',{
extend:'Ext.data.Store',
config:{
model:'MyApp.model.Vegetable',
autoLoad:true,
proxy:{
type:'jsonp',
url:'theurltothejson',
reader:{
type:'json',
rootProperty:null
}
}
}
});
谢谢!
答案 0 :(得分:0)
如果代理接受filter:参数,您可以指定一个预处理返回的json的函数,并将其转换为其余脚本可以处理的内容(例如,将其包装在根元素中)。 / p>
答案 1 :(得分:0)
您的服务器响应是JSON,但您的代理服务器设置为JSONP ...并且存在很大差异。
正如Evan在评论中指出的那样,如果跨越域名,你应该只需要一个JSONP代理。如果您不需要,请将其交换为JSON代理。如果确实需要,那么响应必须是有效的JSONP。
答案 2 :(得分:0)
该响应是可读的但是您的响应是JSONP还是只是JSON?您正在使用JSONP代理,但您只提供JSON(至少在这里)。 JSONP!== JSON。
这是JSON:
[{"foo":"bar"}]
这是JSONP:
SomeCallback([{"foo":"bar"}]);
您可以看到存在很大差异。
这是加载数组的商店的小提琴:https://fiddle.sencha.com/#fiddle/23j
以下是我写的一篇博客,解释了JSONP的内容:http://mitchellsimoens.com/?p=254