eval() - 语法错误

时间:2011-04-26 06:36:21

标签: javascript

此代码产生语法错误..但我无法弄清楚出了什么问题?

alert(eval('('+this.responseText+')'));

编辑:

      var _this = this;
        this.resource.open('POST', uri, true);
        this.resource.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
        this.resource.onreadystatechange = function(){
            if(this.readyState == 4){
                _this.clear_timeout();

                if(_this.loader){
                    Loader.dstr();
                }

                if(_this.rtn_func){
                    _this.rtn_func(eval('('+this.responseText+')'), _this.rtn_obj, _this.rtn_scope);
                }
            }
        };
        this.resource.send(get_str);

4 个答案:

答案 0 :(得分:1)

您必须检查responseText是否实际有效的Javascript。你确定你不想只是显示字符串而不是执行它:

alert(this.responseText);

我应该告诉你,除非你控制responseText来自哪里,否则这个洞足以让C130飞机飞过: - )

答案 1 :(得分:1)

_this.rtn_func(eval('('+ this.responseText +')'),_ thishisrt_obj,_this.rtn_scope);

eval直接执行脚本。比如你有12 + 3 + 4的响应

其形式

eval('(12 + 3 + 4)')

这应该是有效的。你试试这样吗

另外明智的是,如果响应文本作为返回函数名称,或者其他字符串数据显示错误

eval('(formdata())')

答案 2 :(得分:0)

 a= eval("("+this.responseText+")");
 alert(a);

试试上面的代码部分。希望它会有所帮助。

答案 3 :(得分:0)

支架是原因。试试这个。

alert(eval(this.responseText));