解决eval("("+data.d+")")语法错误问题

  最近在写东西的时候遇到一个很令人头痛的问题,如下图所示:

  

  起初总是令人不解,后来经过多次调试,知道了问题的所在,现在拿出来与大家分享一下,让我们少走一些弯路。

  我前台的javascript代码我确保是正确的,如果前台的javascript代码不会写的话,可以看看我的这篇文章:了解一下ajax下json传入后台数据

  我的后台代码:

    View Code
[WebMethod]
            public static string GetClassJson(string idJson)
            {
                Cms.BLL.Photo PhotoClass = new Cms.BLL.Photo();
                Cms.Model.PhotoClass pc = PhotoClass.GetClassbyId(Convert.ToInt32(idJson));
                StringBuilder stb = new StringBuilder();
                stb.Append("{");
                stb.AppendFormat("'name':'{0}','detail':'{1}'",pc.ClassName,pc.Introduce);
                stb.Append("}");
                return stb.ToString();
            }

  输出到前台的json语句为:

    

  然后谷歌浏览器就会报出这样的错误。  

  当然问题出在后台代码上,而问题代码是这一行:

  stb.AppendFormat("'name':'{0}','detail':'{1}'",pc.ClassName,pc.Introduce);

  因为pc.ClassName,pc.Introduce可能有换行符,所以导致输出的json语句有问题,应该将此行代码改为:

  stb.AppendFormat("'name':'{0}','detail':'{1}'",pc.ClassName.Trim(),pc.Introduce.Trim());

  输出到前台的json语句为:

  

  谷歌也不会再报错。

转载于:https://www.cnblogs.com/huanbia/archive/2013/03/10/2952744.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值