我想打包Sencha Touch应用程序以部署到多个移动平台(iOS / Android)。我知道浏览器不可能跨域AJAX请求,但是可以在Sencha Touch应用程序中进行跨域AJAX调用吗? (没有服务器,并使用类似PhoneGap的东西打包到iOS / Android)
我想使用AJAX在Sencha Touch应用程序中点击第三方API,但我的印象是我需要一台服务器来包装第三方API以避免跨域问题。有人请澄清。
答案 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'
}
}
}
});