如何从外部服务器导入数据

时间:2011-12-21 14:28:49

标签: javascript asp.net extjs

我想从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文件相同的代码,但它可以正常工作

3 个答案:

答案 0 :(得分:0)

这是因为浏览器跨域限制。您无法在其他域中创建ajax请求。
只有可能的解决方案是使用iframe,因为这是元素,可以托管您网站中的外部内容。

答案 1 :(得分:0)

为了避免安全限制,您需要对代码进行Web调用。

使用ajax调用服务器,然后在代码后面使用asp.net提供的WebRequest调用并从其他服务器获取数据。

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(TheWebPageToRead);

答案 2 :(得分:0)

我们创建了所谓的ReRouteHandler,基本上它看到请求进入本地服务器并通过使用正则表达式匹配url的配置文件映射到远程服务器,从而调用数据在远程服务器上从本地服务器返回到请求,确实非常好并且易​​于实现。