0

我想写一个数据存储,通过ajax调用获取它的数据。ajax 调用必须是 http post 消息,并且必须包含一些 json 格式的数据。

这就是我到目前为止所拥有的:

Ext.define("MyApp.store.FileContent", {
    extend: "Ext.data.Store",
    model:'MyApp.model.FileContent',
    autoLoad: true,

    proxy: {
        actionMethods : {
            read   : 'POST'
        },
        type: 'ajax',
        defaultHeaders:{
            'Content-Type': 'application/json; charset=utf-8',
        },
        url : apiUrl + 'Files/GetFileInfo',
        jsonData : '{"file": "myfile"}'
    }
});

对 Web 服务的调用有效,但变量“文件”始终为空。这里有什么问题?

4

1 回答 1

0

通过编写自定义代理得到它

店铺:

Ext.define("MyApp.store.FileContent", {
    extend: "Ext.data.Store",
    model:'MyApp.model.FileContent',
    autoLoad: true,
    requires: ['MyApp.proxy.FileContent'],
    proxy: {
        type: 'FileContent'
    }
});

代理人:

Ext.define('MyApp.proxy.FileContent', {
    extend: 'Ext.data.proxy.Proxy',
    alias: 'proxy.FileContent',

    create: function (operation, callback, scope) {
             //Here goes your create logic
        },
        read: function (operation, callback, scope) {
            Ext.Ajax.request({
                url: apiUrl + 'Files/GetFileInfo',
                method: "POST",
                defaultHeaders:{
                    'Content-Type': 'application/json; charset=utf-8',
                },
                jsonData: '{"file": "myfile"}',
                success: function(response){
                    var json = JSON.parse(response.responseText);
                },
                failure: function(){                 
                    alert("fail");
                }
            });  
        },
        update: function (operation, callback, scope) {
             //Here goes your update logic
        },
        destroy: function (operation, callback, scope) {
             //Here goes your delete logic
        }
});
于 2013-03-28T20:34:45.160 回答