Sencha Touch - 错误 - JSON 恢复

发布于 2024-11-04 17:53:50 字数 1695 浏览 4 评论 0原文

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

错误:未捕获的语法错误:意外的标记:

谢谢。

凯文.

I contact you because I'm in a deadlock.
I try to get data from a extern web service with "ScriptTag" but it does not work because the web service returns simple json format (No JSONP).

Do you know if there is a another way to retrieve json using sencha ?

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'
                        },                      
                    }
                }),
                
            },
        ],
                        
    });

}

});

warning : Resource interpreted as Script but transferred with MIME type application/json.

error : Uncaught SyntaxError: Unexpected token :

Thank You.

Kevin.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

蓬勃野心 2024-11-11 17:53:50

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

您应该注意的另一件事是,JSONP 可以绕过跨站点脚本,但如果您没有部署到 walker.hotcity.lu 域,则浏览器将由于 同源政策。服务器必须使用正确的 CORS 进行响应标头以允许您的应用程序访问数据。

What you are looking for is the Ajax Proxy. There are some examples in the docs about how to use it, and how to configure it. The default reader is JSON so as long as your model matches up with the information retrieved via JSON then you will be alright.

The other thing you should be aware of is that, JSONP can get around cross site scripting, but if you are not deploying to the walker.hotcity.lu domain, then the browser will not allow the request due to the same origin policy. The server will have to respond with the proper CORS headers to allow your app to access the data.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文