1

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

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

4

3 回答 3

1

JSONP使用Ext.data.proxy.JsonP. _
我不知道您的 API 是什么样子,但可以像这样使用它:

var store = Ext.create('Ext.data.Store', {
    autoLoad: true,
    //model: , //Your API
    proxy: {
        type: 'jsonp',
        url : 'http://domain.com/request',
        callbackKey: 'theCallbackFunction'
    }
});
于 2013-01-17T22:12:26.637 回答
0

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

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

于 2013-01-17T23:23:05.307 回答
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'
               }
           }
       }
   });
于 2013-01-18T09:42:59.797 回答