最近在写东西的时候遇到一个很令人头痛的问题,如下图所示:
起初总是令人不解,后来经过多次调试,知道了问题的所在,现在拿出来与大家分享一下,让我们少走一些弯路。
我前台的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语句为:
谷歌也不会再报错。