我联系你是因为我遇到了死锁。我尝试从外部web服务与"ScriptTag"但是它不工作,因为web服务返回简单的json格式(没有JSONP)。
你知道是否有另一种方法使用sencha检索json吗?
var helloWorld = new Ext.Application({
Parking: Ext.regModel('Parking', {
fields:[
{name:'parkingName'},
{name:'latitude'},
{name:'longitude'},
{name:'mapUrl'}
],
}),
launch: function() {
this.tabs = new Ext.TabPanel({
fullscreen: true,
dockedItems: [{xtype:'toolbar', title:'JSON Recovery'}],
tabBar: {
ui: 'light',
layout: {
pack: 'center'
}
},
items: [
{cls:'Page1', title:'Page1', html:'Page1'},
{
cls: 'list',
title: 'Page2',
xtype: 'list',
loadingText: 'Chargement',
itemTpl:'<div>{parkingName}</div>',
store: new Ext.data.Store({
autoLoad:true,
model: 'Parking',
proxy: {
type: 'scripttag',
url : 'http://walker.hotcity.lu/hotcity-central-server/webresources/parking/json?format-version=1_0&client-type=iPhone',
reader: {
type: 'json',
root: 'remoteObject'
},
}
}),
},
],
});
}
});
警告:资源被解释为脚本,但使用MIME类型application/json传输。
: Uncaught SyntaxError: Unexpected token:
谢谢。凯文。
您正在寻找的是Ajax代理。文档中有一些关于如何使用它以及如何配置它的示例。默认的阅读器是JSON,所以只要你的模型与通过JSON检索的信息匹配,那么你就没事了。
您应该注意的另一件事是,JSONP可以绕过跨站点脚本,但如果您没有部署到walker.hotcity.lu域,则浏览器将不允许请求,因为同源策略。服务器将不得不响应适当的CORS头,以允许您的应用程序访问数据。