自己搞定,备忘。
前台代码:
Ext.onReady(function(){
new Ext.FormPanel({
id:'typeForm',
renderTo: Ext.getBody(),
frame: true,
height: 300,
width:452,
buttonAlign:"center",
frame: true,
labelWidth: 50,
title: '函数',
items: [
{
xtype:'textareafield',
id:'myText',
height: 200,
width: 450,
wordWrap : true
},
new Ext.Button({
text:'...发送Ajax请求',
listeners:{
"click":function(){
Ext.Ajax.request({
url: '/$/callback?callback=IWCallBack1', //重点
method: 'POST',
success: function (response, options){
Ext.MessageBox.alert('成功', '从服务端获取结果: ' + response.responseText);
Ext.getCmp("myText").setValue(response.responseText);
},
failure: function (response, options){
Ext.MessageBox.alert('失败', '请求超时或网络故障,错误编号:' + response.status);
}
});
}
},
})
],//最大的ITEMS
});
});
后台intraweb代码:
procedure TIWForm1.IWAppFormCreate(Sender: TObject);
begin
LayoutMgr := IWTemplateProcessorHTML1;
WebApplication.RegisterCallBack('IWCallBack1', DoCallBack1); //重点
end;
procedure TIWForm1.DoCallBack1(EventParams: TStringList);
begin
WebApplication.CallBackResponse.AddTagToUpdate('我是返回的数据,哈哈哈,搞定了哦!!'); //重点
end;
这个测试的意义是,可以用Extjs的强大功能做前台界面,intraweb只做后台,用ajax请求读取数据,摆脱对iw控件的依赖,可以把前后台分开(IW控件都是把前后台以及ajax封装在一起的)。
可以看到intraweb ajax Response返回的是XML。