我想在我的GridPanel中从外部服务器导入数据。我试过使用下面的代码:
Ext.define('User', {
extend: 'Ext.data.Model',
fields: [
{ name: 'HasError', type: 'string' },
{ name: 'ErrorString', type: 'char' }
]
});
var store = Ext.create('Ext.data.Store', {
model: 'User',
proxy: {
type: 'ajax',
url: 'http://.../GetActivities.aspx',
method: 'POST',
reader: {
type: 'json',
root: 'Data'
}
},
autoLoad: true
});
store.load();
现在我将它加载到我的GridPanel中。
xtype: "grid",
border: false,
store: store,
viewConfig: { forceFit: true },
flex: 1,
columns: [
{ header: "Aktivitätsnummer", width: 125, dataIndex: 'HasError', sortable: true },
{ header: "Zweck", width: 175, dataIndex: 'ErrorString', sortable: true }
]
我在同一台服务器上的json文件中尝试了相同的代码,并且运行正常。
发布于 2011-12-21 22:42:26
为了避免安全限制,您需要在后台代码上进行web调用。
您可以使用ajax调用您的服务器,然后在后面的代码中使用asp.net提供的WebRequest
调用并从另一台服务器获取数据。
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(TheWebPageToRead);
发布于 2011-12-21 22:34:39
这是因为浏览器的跨域限制。您不能创建到其他域的ajax请求,而您的网站正在创建。
唯一可能的解决方案是使用iframe,因为这是元素,它可以在您的站点中托管外部内容。
发布于 2011-12-22 00:53:34
我们已经创建了所谓的ReRouteHandler
,基本上它看到请求进入本地服务器,并通过配置文件使用正则表达式匹配url映射到远程服务器,从而从本地服务器调用远程服务器上的数据并将其传递回请求,这确实工作得很好,而且实现起来也很简单。
https://stackoverflow.com/questions/8591414
复制相似问题