最近在写一个页面,直接显示交易中返回的<table>标签,由于交易返回的<table>标签里面的东西很杂很多,并放在json格式里面传输,在调试的时候报
Uncaught SyntaxError:UnExcepted EOF ,Uncaught SyntaxError: Unexpected token ILLEGAL 等错。
这些错误的原因如要是json的数据格式的要求,json的数据中除了字符 "
,\
,/
和一些控制符(\b
,\f
,\n
,\r
,\t
)需要编码外,其他 Unicode 字符可以直接输出。
在我调试的程序中,虽然看我传输的东西,没有发现这些需要另外编码的字符,但是还是一直报这些错误,老大讲应该是看不到的控制符造成的这些错误。
于是,我采用下面的这种方式,对我要传输的东西进行处理。
result = URLEncoder.encode(result,"utf-8");
result = result.replace("+", "%20");
http://blog.csdn.net/long95wang/article/details/8209108
http://www.w3schools.com/cn/tags/ref_urlencode.asp
然后在页面显示的时候,使用 var tm = decodeURIComponent(tableHtml);
对取出的数据进行了处理。
这样就解决了在传输过程json数据格式出错的问题了。
问题解决以后,我之前的问题原因进行查找,发现是在我放进json的数据中有" \r ”,我把所有的" \r ” 替换成空格,问题也迎刃而解。json数据 中的控制符没有处理,真是害人不浅啊。