在服务器那里encode一下,然后在JS的eval前,先decode一下或者把JSON字符串贴出来,看看有没有错

解决方案 »

  1.   

    应该是包含了非法字符用
    encodeURI
    decodeURI
    处理
      

  2.   

    我要解析普用的文字没有错误~~2楼你说的(“在服务器那里encode一下,然后在JS的eval前,先decode一下 ”)
    是指Server.HtmlEncode? 在js的eval前decode一下,怎么写
      

  3.   

    1、明確自己做什麽,從樓主返回結果中能看出沒有必要使用eval轉換
    2、eval是將後臺返回的結果轉換成js對象,即json。這是目前較流行和常用的方式。當然你也可以後臺生成js代碼字符串,返回前臺用eval動態執行
    3、既然返回的結果中包含大量html標籤,則返回request.responseText即可
    4、如果想返回json,則後臺應構造符合json規範結構的字符串。再用eval轉換。
    5、完了
      

  4.   

    或者在服务器端用escape
    传过来后用unescape(xmlhttp.responseText)看看
      

  5.   

    谢谢各位的建议写了一个json的类,返回的是一个json格字的字符串
    解析时候出了问师,老是说"缺少"}"我忘了说一个重点json是key:value组成
    我是说在value里有大量的标签(例如:<P><IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=37"></P>有这样的内容)
    解析普通文字没有错误
      

  6.   


    <script>
    String.prototype.unescapeHtml = function(){
    return this.replace(/&amp;/g,'&').replace(/&lt;/g,'<').replace(/&gt;/g,'>');
    }
    //JSON
    /*reponseText得到的应该是这样的格式就对了
    你的格式 {img:\'&lt;P&gt;&lt;IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=37"&gt;&lt;/P&gt;\', img2: \'&lt;P&gt;&lt;IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=38"&gt;&lt;/P&gt;\'}
    转变后是这样的 {img:'<P><IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=37"></P>', img2: '<P><IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=38"></P>'}
    */
    var str = '{img:\'&lt;P&gt;&lt;IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=37"&gt;&lt;/P&gt;\', img2: \'&lt;P&gt;&lt;IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=38"&gt;&lt;/P&gt;\'}'; eval('var rs='+str.unescapeHtml());
    //这句其实就是 var rs = {img:'<P><IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=37"></P>', img2: '<P><IMG src="show.aspx/2pz34260m[1].jpg?InfoDtID=38"></P>'}; alert('rs.img='+rs.img+'\nrs.img2='+rs.img2);</script>
    参考下
      

  7.   

    我查看了一下~~~
    主要是value里有双引号,受影响~~`要是把双引号换成单引号,显示出来的值是这个<IMG src='show.aspx/shenzhen[1].jpg?InfoDtID=41'>我要的是一张图片~~不知道有什么办法可以解决
      

  8.   

    [div].innerHTML = request.responseText
    不行就把 &lt;和&gt;替换成< > 再innerHTML