Ext中的return eval("("+json+")")报错解决方法

来源:互联网 发布:知乎是什么公司的 编辑:程序博客网 时间:2024/05/19 09:36

return eval("("+json+")")报错一般多是json的格式出现问题。

对于采用了服务器端.ashx文件的情况下,IE会输出json数据和html页面 tag的混合,

如<h1>sdsd</h1>{"name":"rose","Age":20}<br/>.

而FF浏览器也同样会混合一些东东,不过常加入<pre>标签。

解决:在ext-all.js中加入过滤措施。

位置在:Ext.util.JSON=...的地方

内容如下:............

Ext.util.JSON=...

doDecode=function(json){
  //解决ff里的bug
var temp;
        if(json.indexOf('<pre>') != -1){
            temp = json.substring(5, json.length-6);
            alert("temp = " + temp)
            return eval("(" + temp + ')');
        }
//解决IE里的bug,只获取{......}里的数据
var start = json.indexOf("{");
var end = json.indexOf("}")+1;
json=json.substring(start, end);
alert("temp = " + json);
return eval("("+json+")")},

.............

经以上处理问题得解,当然个人遇到的问题可能不同,本文仅做参考。

原创粉丝点击