EXT 3.x 使用详解之fileUpload处理返回值json问题

这里有个小bug,耗费了我一天的时间,就是fileUpload在处理json 返回值的时候不会去过滤掉

    <pre></pre> <PRE></PRE>

这种字符的,然后就会报错
missing } in XML expression
所以我们在拿到的返回值是这样子的

    <pre>{"fileName":"\/upfile\/images\/1468309140434.png","success":true}</pre>

这样

    var res = Ext.util.JSON.decode(action.response.responseText);

就无法去正确解析返回的字符串了。
下面我们需要对ext-all.js源码做一个修改,如下:

      doDecode = function(json){
         //加入部分begin
        if(json.indexOf('<pre>') != -1 || json.indexOf('<PRE>') != -1 ){
            json=json.replace('<pre>','').replace('<PRE>','').replace('</pre>','').replace('</PRE>','');
         }
        //加入部分end
        return eval("(" + json + ")");    
        },

如果是ext-all.js是压缩后的,自己去找没压缩的js修改即可

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章