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修改即可

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