2011-04-26 72 views
0

此代码产生语法错误..但我无法弄清楚什么是错的?eval() - 语法错误

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

可能,你的回应文本不是有效的JavaScript ... – Vishwanath 2011-04-26 06:38:04

+2

什么价值responseText的? – 2011-04-26 06:38:17

+0

当然是! :D作出回答 – clarkk 2011-04-26 06:39:02

回答

1

你将不得不检查responseText是否是实际上有效的JavaScript。你确定你不想只是显示而不是执行它的字符串:

alert(this.responseText); 

我要告诉你,除非你有在哪里这个responseText是来自总控制,这是一个通过以下途径飞行的C130飞机:-)

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

尝试上述代码部分。希望它会有所帮助。

0

括号是原因。尝试这个。

alert(eval(this.responseText)); 
1

_this.rtn_func(EVAL( '(' + this.responseText + ')'),_this.rtn_obj,_this.rtn_scope);

eval直接执行脚本。如u有响应像12 + 3 + 4

其形式

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

这应该是工作。难道ü尝试这样

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

eval('(formdata())')