Как я могу импортировать данные с внешнего сервера - PullRequest
1 голос
/ 21 декабря 2011

Я хочу импортировать данные с внешнего сервера в моей 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 голосов
/ 21 декабря 2011

Чтобы избежать ограничений безопасности, вам нужно совершить веб-вызов с кодом позади.

Вы вызываете свой сервер с помощью ajax, а с помощью кода позади вы звоните и получаете данные с другого сервера, используя * 1003.* которые предоставляют asp.net.

HttpWebRequest req = (HttpWebRequest)WebRequest.Create(TheWebPageToRead);
0 голосов
/ 21 декабря 2011

Мы создали то, что мы назвали ReRouteHandler, в основном он видит, что запрос поступает на локальный сервер и который сопоставляется с удаленным сервером через файл конфигурации, соответствующий URL-адресу с помощью регулярных выражений, таким образом вызывая данные на удаленный сервер с локального сервера и возвращение к запросу, действительно очень хорошо работает и прост в реализации.

0 голосов
/ 21 декабря 2011

Это из-за междоменного ограничения браузера. Вы не можете создать ajax-запрос к другому домену, чем ваш веб-сайт.
Единственное возможное решение - использовать iframe, потому что это элемент, который может размещать на вашем сайте внешний контент.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...