Javascript 使用ExtJS4.2访问Google api
我尝试使用Extjs sencha访问以下url。运行时未加载数据。当我尝试访问浏览器上的url时,我能够看到数据 我是Extjs的新手。我知道我正在尝试加载跨域数据。但我不知道如何实现这一点。请有人帮帮我Javascript 使用ExtJS4.2访问Google api,javascript,google-maps,extjs,extjs4,extjs4.1,Javascript,Google Maps,Extjs,Extjs4,Extjs4.1,我尝试使用Extjs sencha访问以下url。运行时未加载数据。当我尝试访问浏览器上的url时,我能够看到数据 我是Extjs的新手。我知道我正在尝试加载跨域数据。但我不知道如何实现这一点。请有人帮帮我 Ext.define('MyApp.store.MyJsonStore', { extend: 'Ext.data.Store', requires: [ 'MyApp.model.MyModel', 'Ext.data.proxy.Ajax', 'Ext.dat
Ext.define('MyApp.store.MyJsonStore', {
extend: 'Ext.data.Store',
requires: [
'MyApp.model.MyModel',
'Ext.data.proxy.Ajax',
'Ext.data.reader.Json'
],
constructor: function(cfg) {
var me = this;
cfg = cfg || {};
me.callParent([Ext.apply({
model: 'MyApp.model.MyModel',
storeId: 'MyJsonStore',
proxy: {
type: 'ajax',
url: 'https://maps.googleapis.com/maps/api/geocode/json?address=Barcroft + Plaza +Apartments ,+22041&sensor=true&key=API_KEY',
reader: {
type: 'json'
}
},
listeners: {
load: {
fn: me.onJsonstoreLoad,
scope: me
}
}
}, cfg)]);
},
onJsonstoreLoad: function(store, records, successful, eOpts) {
Ext.MessageBox.show('Loaded');
}
}))
我也尝试过jsonp,而不是Ajax代理。如果我使用jsonp,那么我会得到未捕获的syntaxerror意外标记。我搜索了很多博客、论坛,每个人都在谈论添加回调,但我正在调用第三方api
我尝试了以下jsonp代码。我尝试了使用和不使用回调键的两种方法
proxy: {
type: 'jsonp',
url: 'https://maps.googleapis.com/maps/api/geocode/json?address=1600+Amphitheatre+Parkway,+Mountain+View,+CA&sensor=true&key=API_KEY',
callbackKey: 'Mycallback',
reader: {
type: 'json',
root: 'results'
}
您能解释一下“访问url”、“未加载数据”的含义吗。也许你能出示相关代码?我想你的问题是cors。在控制台中,您应该会得到一些关于它的警告。除非web服务启用了cors,否则基本上无法跨域发出跨站点请求。JsonP是解决这个问题的一种方法,但是,我不相信这个服务除了回调之外会有什么效果。嗨,hgoebl,我已经更新了那里的代码。请检查一下。嗨,Weeksdev。无论如何,是否可以将此服务作为回调调用。如果可以,请给我一段代码。这将非常有帮助您是否有某种后端可以为您进行调用?我的想法是:点击端点(中间层),它代表用户进行调用并返回数据,因此,CORS不应该是一个问题,您也不必执行JSONP。