今天在开发一个项目时,前端用的是EXT框架,在开发过程中碰到一个问题:missing } in XML expression。因为本人是用firefox浏览器的插件FireBug做为调试,所就碰上这事。如果不用firefox可能永远碰到着。发现问题咱们就来解决问题。
使用firedebug跟踪了一下返回的数据, 发现responseText中被加上了<pre></pre>标签,但是在IE中没有<pre>标签,问题就出这里。
浏览一下源代码,发现Ext.form.Action.Submit提交请求是用Ext.Ajax组件进行数据传输的. Ext.form.Action.Submit部分源代码如下所示:
引用
1. ...
2. // private
3. run : function(){
4. var o = this.options;
5. var method = this.getMethod();
6. var isGet = method == 'GET';
7. if(o.clientValidation === false || this.form.isValid()){
8. Ext.Ajax.request(Ext.apply(this.createCallback(o), {
9. form:this.form.el.dom,
10. url:this.getUrl(isGet),
11. method: method,
12. headers: o.headers,
13. params:!isGet ? this.getParams() : null,
14. isUpload: this.form.fileUpload
15. }));
16. }else if (o.clientValidation !== false){ // client validation failed
17. this.failureType = Ext.form.Action.CLIENT_INVALID;
18. this.form.afterAction(this, false);
19. }
20. },
21.
22. // private
23. success : function(response){
24. //问题源
25. var result = this.processResponse(response);
26. if(result === true || result.success){
27. this.form.afterAction(this, true);
28. return;
29. }
30. if(result.errors){
31. this.form.markInvalid(result.errors);
32. this.failureType = Ext.form.Action.SERVER_INVALID;
33. }
34. this.form.afterAction(this, false);
35. },
36.
37. processResponse : function(response){
38. this.response = response;
39. if(!response.responseText){
40. return true;
41. }
42. this.result = this.handleResponse(response);
43. return this.result;
44. }
45. ...
因为在processResponse函数处理数据时出现异常,所以就出现了上面碰到的问题.那么怎么解决它呢,重写processResponse方法就OK了.在你所使用的JS中加入如下一段代码就OK了.
引用
1. Ext.override(Ext.form.Action.Submit,{
2. // private
3. processResponse : function(response){
4. this.response = response;
5. //增加下面几句代码就OK啦
6. ////////////////////////
7. var data = response.responseText;
8. if(data.indexOf('<pre>') != -1) {
9. response.responseText = data.substring(5, data.length-6);
10. this.response = Ext.util.JSON.decode(response.responseText);
11. }
12. ///////////////////////////
13. if(!response.responseText){
14. return true;
15. }
16. this.result = this.handleResponse(response);
17. return this.result;
18. }
19. });
分享到:
相关推荐
ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南ext开发指南
Ext开发指南
包括Ext开发的环境搭建,开发文档,本人有《深入浅出Ext.JS.徐会生》电子版,有需要可联系skyliuxf@gmail.com
Ext开发环境配置使用说明,描述EXT的Spket安装配置和使用,Firebug安装配置和使用
做跨库查询时,前台是用EXT实现的 基本上开始的时候对EXT的了解=0 所以会在这个开发过程中找到一些教程
Ext&Ext开发指南‘’‘Ext&Ext开发指南’‘’Ext&Ext开发指南‘’‘Ext&Ext开发指南’‘’Ext&Ext开发指南‘’‘Ext&Ext开发指南
Efs 是企业快速开发的UI 层。这个UI 层封装extjs 框架...开发人员可以不用深入掌握Ext框架,只需要开发者编写少量的 html 代码,也可以做出很炫的页面。当然你也可以使用new Ext 的控件渲染到 页面,两者可以混合使用。
EXT IDE EXT IDE EXT IDE EXT IDE
extJS 的开发使用指南, 有简单、易懂的案例, 学者更易上手。 案例分析,让开发者在项目中快速应用。
EXT中文手册,ext开发帮手EXT中文手册,ext开发帮手EXT中文手册,ext开发帮手
Ext界面开发面板比较!
ext框架源码和中文开发文档,ext框架可以作出很漂亮的效果
ext js中文开发手册
ext开发资源包,JAVA开发中的必备工具,让开发变得简单
Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发实例宝典光盘源码Ext JS源码分析与开发...
Ext 3.0 中文 API 开发文档 直接不打开,不需要部署在服务器上,中文,查看方便,快捷!Ext开发人员必备!
《快意编程:Ext JS Web开发技术详解》是笔者在多年项目开发过程中的经验总结,它通过丰富的实例由浅入深、循序渐进地介绍了目前采用Ext JS进行Web开发的使用方法,从而帮助软件设计人员快速掌握Ext JS开发技术的...
里面包含ext 源码,开发文档,api, 实用例子,不过要耐心看的
ext+.net开发,包括以下文档: 1、extjs和.net结合.doc 2、ExtJS入门教程(超级详细).pdf 3、ExtJS与.NET结合开发实例.doc 4、ExtJs与.NET综合开发指导.doc
Ext开发所需要的相关文件