EXTJS7 BUG分析解决 form启用xhr2提交丢失所有表单数据
小编:管理员 431阅读 2022.09.06
表单提交启用xhr2时会丢失所有表单数据
form.submit({ xhr2: true ... });复制源码
- form/Panel.js
... beforeAjaxSubmit: function(form, options, successFn, failureFn) { ... if (Ext.feature.has.XHR2 && request.xhr2) { delete request.form; // 此处将表单值存入request.data有误,后续请求并没有从request.data取值 // 可通过override: 'Ext.form.Panel'覆盖此方法修订,改为: // formData = request.rawData = new FormData(form); formData = request.data = new FormData(form); if (request.params) { Ext.iterate(request.params, function(name, value) { if (Ext.isArray(value)) { Ext.each(value, function(v) { formData.append(name, v); }); } else { formData.append(name, value); } }); delete request.params; } } ... } ...复制
- Ext.data.Connection
... // 发起请求 request: function(options) { ... // 装填请求信息 requestOptions = me.setOptions(options, options.scope || Ext.global); request = me.createRequest(options, requestOptions); return request.start(requestOptions.data); ... }, ... setOptions: function(options, scope) { ... // 并没有使用options.data data = options.rawData || options.binaryData || options.xmlData || jsonData || null; ... return { url: url, method: method, data: data || params || null }; } ...复制
相关推荐
- ExtJs七(ExtJs Mvc创建ViewPort) 前言在4.1的时候,要先创建一个扩展于Ext.app.Application的类,然后用create创建它的实例来开始应用程序的。而在4.1.1,则可直接调用application方法开始执行应用程序,简化了。调用application方法,其参数是一个配置对象,主要配置项有以下三个:name:用来…
- 3DMAX提示和技巧 本主题标识使用 Civil View 的一些重要提示和技巧。常规使用屏幕分辨率至少为 1280x1024 的 Civil View。低于此分辨率时,一些面板将占用过多屏幕空间。 将视口设置为线框显示以达到最佳性能。 要尽可能简化用户界面,请在单个视口中工作并关闭 3ds Max 命令面…