zoukankan      html  css  js  c++  java
  • 解决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语句为:

      

      谷歌也不会再报错。

  • 相关阅读:
    oracle用户被锁
    Docker入门
    物化视图
    MySQL报错:Packets larger than max_allowed_packet are not all
    ORA-01555 快照过旧
    mysql授予权限
    CentOS7.4安装部署KVM虚拟机
    前端面试题收藏
    CoffeeScript 学习笔记
    spring学习笔记(四)
  • 原文地址:https://www.cnblogs.com/huanbia/p/2952744.html
Copyright © 2011-2022 走看看