responseTest={"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912240000000047","title":"test","cont":"sql.append("update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= ");<br> sql.append(" now() where logid=).append(logid).append(");23423"}]}
var rsData;
eval("rsData="+responseText);
eval执行就报错了  谁能够看看怎么解决?
这个responseText只要是这种包含一些标点符号如:“. "" ''”这样的就执行不了;

解决方案 »

  1.   

    对了还有几行代码没贴出来:responseText=trim(responseText);
    if(responseText==""){
    alert("操作失败,请检查服务日志!");
    return false;
    }
    var rsData;
    eval("rsData="+responseText);我检查过 trim()是正常的
      

  2.   

    ...本身的格式都有问题,
    例如:"sql.append(\"update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= \"); <br> sql.append(\" now() where logid=).append(logid).append(\");23423"除了两端的“"”都要转义
      

  3.   

    <script>
    responseText='{"RETCODE":"0000","cols":"3","rows":"1","resultSet":[{"logid":"AB200912240000000047","title":"test","cont":"sql.append(\\"update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= \\"); <br> sql.append(\\" now() where logid=).append(logid).append(\\");23423"}]}'; 
    var rsData; 
    eval("rsData="+responseText); 
    alert(rsData.cols);
    </script>
      

  4.   

    那多麻烦 那个responseText是用户输入得到的 我怎么样进行转义? 有没有什么方法?
      

  5.   

    现在的问题是这样的 ,那个responseText我动态读取的 如果里面有"cont"我就把"cont"后面的字符串里面的引号进行转义,没有就算了 现在我怎么才能取到那个"cont" 再怎么遍历它后面的字符串?
      

  6.   

    1. 把responseTest = {}改成responseText
    2. 把eval("rsData" + responseText)改成eval("rsData=responseText")
    3. 把"sql.append("update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= "); <br>  sql.append(" now() where logid=).append(logid).append(");23423"
    改成
    'sql.append("update fitdoa.tb_oa_log set title=).append(title).append(,cont=).append(cont).append(,opttime= "); <br>  sql.append(" now() where logid=).append(logid).append(");23423'
    (两边的双引号换成单引号)
      

  7.   

    我想用escape 把返回的responseText 编码 然后再反编码怎么样?
    var resonsetext=this.req.responseText;
    this.req.responseText=escape(resonsetext);
    var rs = unescape(AnalysisJSON(this.req.responseText));
    可是报语法错误怎么办?