Unquotted string '"2016-07-19"'
自己挖的坑,含泪跳进去也要填平。 ---题记
1.问题:
a. 在前端使用JSON.stringify(json)转化数组对象为字符串,然后传给后台;
var dateArray = new Array(); //fill array params.dateArray = JSON.stringify(dateArray); //ajax.post();
b. 后端java使用 net.sf.json.JSONArray.fromObject(params);方式解析;
JSONArray jsonArrays = JSONArray.fromObject(params.get("dateArray"));
c:报如下错误:
Unquotted string '"2016-07-19"'
2.分析:
2.1 一看是错误为字符串没有写引号;
2.2 但是此字符串命名是有引号的呀;
2.3 难道是JSON.stringify();转化使用的编码方式不正确?console.log(转化后字符串),没错;
2.4 难道是传到后台中传输的编码方式不正确?查看web.xml,所有请求的编码方式为UTF-8,没错;
3.顿悟:
想起了系统做了防xss攻击优化,将一些可能造成攻击的字段在过滤器中转为了全角字符,查看过滤器,bingo!!!
4.解决方案:
将双引号转化的为全角的代码注释;
5.感想:
防xss攻击方式需要改善