0

AJAXを使用してクロスドメインリクエストをwsに送信するグリッドにデータをロードする方法は?リクエストを送信することはできますが、コールバックメソッドを使用してデータをグリッドにロードするにはどうすればよいですか?

contollerファイル内:

if(searchText){
    var resultGrid = Ext.getCmp('myResultGrid');
    store.setProxy({
                            type: 'ajax',
                            // cross domain request
                            url:"http://3.xxx.xxx.77/cs/sid/"+searchText,
                            actionMethods:{read:'GET'},
                            pageParam: false, //to remove param "page"
                            startParam: false, //to remove param "start"
                            limitParam: false,
                            timeout:9000000,
                            noCache : true,
                            reader: {
                            type: 'json'
                            }
                    });


    resultGrid.store.load({
      scope: this,
      callback: function(records, operation, success) 
      {
          var totalcount= 0;
          totalcount = records.count(true);

          if(totalcount > 0)
          {
              // Load the data into grid ???

          }
          else
          {
              Ext.Msg.alert("No Records found.");   
          }
      }
    });
}

ストアファイル:SearchResultsStore.js

     Ext.define('AM.store.SearchResultsStore', {
    extend: 'Ext.data.Store',
    model: 'AM.model.SearchModel',
    autoLoad: false
});

モデル:

   Ext.define('AM.model.SearchModel', {
    extend: 'Ext.data.Model',
    fields: ['slno', 'customer']
});

jsonの応答

        [{"slno": "12454","customer": "acd"}]

立ち往生するのを手伝ってください!!! 前もって感謝します

4

1 に答える 1

1

ajaxを使用してドメイン間でリクエストを送信することはできません。これが、ここでの実際の問題です。そもそもデータを受信して​​いないため、ロードコールバックで何かを行う必要があると想定しています。これは問題とは関係がなく、コールバックを使用する必要はありません。あなたがする必要があるのは、クロスドメインコールを可能にするajaxの代わりに'jsonp'プロキシでストアを設定することです:

store.setProxy({
                                type: 'jsonp',
                                // cross domain request
                                url:"http://3.xxx.xxx.77/cs/sid/"+searchText,
                                actionMethods:{read:'GET'},
                                pageParam: false, //to remove param "page"
                                startParam: false, //to remove param "start"
                                limitParam: false,
                                timeout:9000000,
                                noCache : true,
                                reader: {
                                type: 'json'
                                }
                        });
于 2012-08-20T17:58:14.280 に答える