此代码产生语法错误..但我无法弄清楚出了什么问题?
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);
答案 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));