Sencha Touch - 错误 - JSON恢复

时间:2011-05-04 14:15:00

标签: javascript json sencha-touch script-tag

我联系你是因为我陷入僵局。 我尝试使用“ScriptTag”从外部Web服务获取数据,但它不起作用,因为Web服务返回简单的json格式(No 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进行传输。

     

错误:未捕获的SyntaxError:意外的令牌:

谢谢。

凯文。

1 个答案:

答案 0 :(得分:0)

您要找的是Ajax Proxy。文档中有一些关于如何使用它以及如何配置它的示例。默认阅读器是JSON,因此只要您的模型与通过JSON检索到的信息匹配,那么您就可以了。

您应该注意的另一件事是,JSONP可以绕过跨站点脚本,但如果您没有部署到walker.hotcity.lu域,那么浏览器将不会允许请求{{{ 3}}。服务器必须使用正确的same origin policy标头进行响应,以允许您的应用访问数据。