/**
* 打开数据项导入窗口
*/
function openDataItemImportWnd() {
Ext.create('Ext.window.Window', {
title: '导入数据项',
autoHeight: true,
width: 400,
modal: true,
layout: 'fit',
items: {
xtype: 'form',
method : 'POST',
url: "importDataItemStructure.up",
standardSubmit: false,
items: [{
xtype: 'filefield',
emptyText: '请选择要上传的xls文件',
id: 'filefield_yY71MXsb',
name: 'fileName',
allowBlank: "false",
width: 300,
hideLabel: 'false',
labelAlign: 'right'
}],
buttons: [{
text: '导入',
formBind: true,
handler: function(button) {
Ext.getBody().mask('数据导入中...');
// 获取表单的值
var form = button.up('form').getForm();
form.submit({
success: function(form, action) {
console.dir(action);
Ext.Msg.alert('Success', action.result.info.message);
},
failure: function(form, action) {
Ext.Msg.alert('Failed', action.result ? action.result.info.message : 'No response');
}
});
Ext.getBody().unmask();
}
}, {
text: '取消',
handler: function(button) {
button.up('window').destroy();
}
}]
}
}).show();
}
用Extjs提交表单后,请求有返回数据,但success函数的action里取不到返回结果
- 写回答
- 好问题 0 提建议
- 关注问题
- 邀请回答
-
7条回答 默认 最新
- atty24 2015-06-10 09:38关注
谢谢大家,让我排除了很多走弯路的可能。
认真看了下Extjs的API,其中关于文件上传表单提交的一段:
文件上传不能用标准“Ajax”技术执行,也就是不能执行XMLHttpRequests。 作为替代,一个隐藏的包含全部域的
元素被暂时创建,并与其target提交设置为指向一个动态生成的, 隐藏的被插入到document,但是在返回数据已经收集后被移除。请求的返回结果被返回给了那个隐藏的里的document。
在主页面中添加这个监听函数,当上传完成后,就去里的document里去取得返回结果。
Ext.data.Connection.prototype.onUploadComplete=function(frame, options) {
//到Iframe里去取返回结果。
}我后台是用的Spring框架,构造好ModelMap,直接由Spring自动返回给页面的。
按以上思路取到了返回结果。不过我想,Extjs应该把从iframe里取结果的逻辑封装好才是合理的呀。为什么还要自己手动去写?
以前没用过Extjs框架,不知道如果后台不是Spring框架自动返回结果,而是自己直接用response返回结果是不是页面上就不用自己麻烦去写取结果的代码了。这一个待验证。本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 PADS Logic 原理图
- ¥15 PADS Logic 图标
- ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
- ¥20 气象站点数据求取中~
- ¥15 如何获取APP内弹出的网址链接
- ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
- ¥50 STM32单片机传感器读取错误
- ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
- ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
- ¥15 机器人轨迹规划相关问题