在sencha touch应用程序中是否需要服务器来进行ajax调用?

时间:2013-01-17 17:14:37

标签: ajax extjs sencha-touch

我想打包Sencha Touch应用程序以部署到多个移动平台(iOS / Android)。我知道浏览器不可能跨域AJAX请求,但是可以在Sencha Touch应用程序中进行跨域AJAX调用吗? (没有服务器,并使用类似PhoneGap的东西打包到iOS / Android)

我想使用AJAX在Sencha Touch应用程序中点击第三方API,但我的印象是我需要一台服务器来包装第三方API以避免跨域问题。有人请澄清。

3 个答案:

答案 0 :(得分:1)

JSONP使用Ext.data.proxy.JsonP可以进行跨域AJAX请求 我不知道您的API是什么样的,但使用类似这样的内容:

var store = Ext.create('Ext.data.Store', {
    autoLoad: true,
    //model: , //Your API
    proxy: {
        type: 'jsonp',
        url : 'http://domain.com/request',
        callbackKey: 'theCallbackFunction'
    }
});

答案 1 :(得分:0)

您可以使用JSONP,但您也可以使用普通的JSON。

当文件是“本地”时,手机浏览器将允许跨域请求,即包装在phonegap中。

答案 2 :(得分:0)

正如A1rPun所说,使用Ext.data.proxy.JsonP

可以使用JSONP(带填充的JSON)进行跨域AJAX请求

Sencha touch-2方法:

Ext.define('YourStore', {
       extend: 'Ext.data.Store',

       config: {
           fields: ['field1', 'field2', 'field3'],

           proxy: {
               type: 'jsonp',
               url:'YourUrl',
               callbackKey: 'jsoncallback',
               extraParams : {
                    method : 'YourUrl.method',
                    api_key : 'PUTYOURKEYHERE',
                    format : 'json',
                    nojsoncallback : 1
               },
               reader: {
                   type: 'json'
               }
           }
       }
   });