在使用文本域、富文本编辑器时,如果保存的数据中存在单引号(') 双引号(") 换行符(\r\n)等特殊字符。在某些情况下前端解析数据或展示数据会存在问题。如下:
1、后端传递数据使用model方式,前端js中用变量来接收。使用单引号 如 var json='${json}' 时,如果数据中存在(')则会报js错误,同理使用双引号接收,数据中存在双引号一样会出现问题。
2、后端传递数据返回的是json字符串,需要取的数据是对象中的某个属性。前端取值时,需要先将json字符串转成js对象 JSON.parse(json) 如果数据中存在 单引号 双引号 会出现同1 的错误 如果存在 \r\n 转换js对象也会不成功。
3、后端传递数据返回的是json字符串,需要取的数据就是该json字符串。如果前端需要将该字符串拼接到html标签中用于缓存数据,如果数据中存在 单引号 双引号 则html标签结构会被破坏,出现问题。
解决方案:
针对可能出现特殊字符的字段或者内容,在后端先使用URLEncode.encode(json,"UTF-8") 进行编码
在前端获取数据、缓存数据等过程中使用编码后的数据。在最终展示数据时使用decodeURI(json) 进行解码
还没有评论,来说两句吧...