未结束字符串常量错误的另一种原因

采用Ext进行开发,在对数据进行保存时为了区别保存是否成功,jsp页面反回json数据为区分.代码如下:
tru{
...
out.print("{flag:'ok',msg:''}");
}
catch (Exception ex) {
		ex.printStackTrace();
		out.print("{flag:'failure',msg:'"+ex.toString()+"'}");
	}

结果是IE浏览器总报"未结束字符串常量错误",排除页面编码因素,最后采用alert显示jsp页面返回数据,发现ex.toString()里含有回车符,结果是msg的字符串被数据库Oracle输出的回车符分为两段,javascript报错在所难免.最后将
out.print("{flag:'failure',msg:'"+ex.toString()+"'}");
改为
out.print("{flag:'failure',msg:'"+ex.toString().replaceAll("\n","")+"'}");
成功通过


你可能感兴趣的:(JavaScript,json,ext)