0

下面是我对加载存储的服务器的 ajax 调用:

   function setUpStore(Id){
    store = Ext.create('Ext.data.TreeStore', {
    storeId:'jsonStore',
    proxy: {
        type: 'ajax',
        url: 'fetchData.action?ID='+Id,
        reader: {
            type: 'json'
        },
        success : function(resp){
            alert("success!!!");
        }
    }
});

}

它调用以下返回 JSON 对象的 java 方法:

公共字符串 fetchJSONObj(){

              HttpServletResponse res = ServletActionContext.getResponse();
              HttpServletRequest req  = ServletActionContext.getRequest();

    ID = (String) req.getParameter("ID");
    res.setHeader("Content-Type", "application/json");

    VendorVO root= ServiceHelper.getInstance().getService().getData(ID);


    Data = new ExtJsTreeWrapper();
    Data.setText(ID);
    Data.setId(ID);
    Data.getChildren().add(convertVOToExtJSWrapper(root));
    return SUCCESS;
}

从服务器获得响应后,我没有收到成功处理程序中提到的警报。我是否正确声明了它?

谢谢

4

1 回答 1

2

代理没有一个名为成功的配置选项。

给定您的代码,您可以挂钩商店的加载事件:

function setUpStore(Id){
    store = Ext.create('Ext.data.TreeStore', {
        storeId:'jsonStore',
        proxy: {
            type: 'ajax',
            url: 'fetchData.action?ID='+Id,
            reader: {
                type: 'json'
            },
        },
        listeners: {
           load: {
               fn: function() {
                   // Do something here.
               },
           },
           scope: this               
        }
    }
});

如果您进行手动加载,您还可以将回调作为参数传递给加载函数。

于 2012-06-26T09:28:51.673 回答