html页面获取token报 token u in JSON at position 0错误该怎样解决

6803人阅读
javascript(10)
调试页面的时候js报错 :&Uncaught SyntaxError: Unexpected token & in JSON at position 0
其实报这个错误,只可能是json解析异常,坑了很久都没找到问题原因,
结果点开这个错误就能定位到错误的代码
直接点击这个initHTML后面的url,定位到错误代码位置;
看到这里原因就很明显了,这个EditorHtml不能正确的解析,此次错误是因为
EditorHtml的数据结构之前是简单的字符串,后来因为修改了逻辑,改成了JSON的字符串,
而我获取到了修改之前的数据导致的报错.
这个错误都是因为某些原因导致传入的字符串不是标准的JSON字符串导致的.
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:259961次
积分:3158
积分:3158
排名:第11111名
原创:70篇
评论:60条
阅读:35046
文章:38篇
阅读:159894
文章:38篇
阅读:159894出现这个报错提示,根本原因只有一个--json解析异常,所以请大家直接去关注自己json的返回数据注意检查其返回内容和内容的格式是否正确,至于本文血案的导火索是因为json注释滴问题。
事发--血案
有一天一个朋友找我商量,说用jquery的ajax什么都写对了,可数据就是不正常显示,我说发核心代码我look下,如图1
我也反复检查了几遍确实没问题,那。。。。。。我突然发现他的代码中只存在了异步success的回调,既然不走成功回调,那就看下error函数咯,error函数我们不经常使用,其有三个参数XMLHttpRequest对象, textStatus错误文本描述, errorThrown错误发生时才会被传递。在error里添加一个log发现被打印了,ajax这个过程确实存在异常,但具体哪个方向的依旧未知。打印了一下textStatus发现输出parsererror,解析错误。好了,此刻可以断定ajax通信是正常的。也就是XMLHttpRequest.readyState已经为4了,那就代表客户端和服务端通信完成,数据已经拿回本地,最后可以确定报错的原因就是在json解析的时候发生了异常。
于是我又信誓旦旦的去检查他本地模拟的json数据,我们都知道json是由老道在js对象语法格式上发明而来的,其比js的对象格式更加严谨,单双引号搞错都不行,而且json也就那么几种固定的返回格式,直接{}对象形式,还有一种对象数组形式[{},{}],还有一种对象中的数组{"",[]}额,我记得是一共就这三种情况,晓得这些基础知识以后严格排查,发现格式一切正常,额。。见鬼。。。。。
那看下返回内容吧,如图2所示,一个json数组一个抬头信息。乍一看貌似没什么问题,但是问题就在这,上文已经说到json格式是从js对象格式中改变而来,在js中注释有很多种写法,但是json在发明之初就是不提倡注释的,所以抬头信息在解析的时候就会被认定为错误信息。深坑啊。。。。。
于是乎我就去寻找这个抬头的来源,我问他你最近用什么编辑器了没?他说就sublime,我起初怀疑是编辑器自动加的落款,后来发现不是,于是我看了下他的请求文件,是一个php文件,打开这个php文件,发现这个php文件刚开头就对客户端写回了一段说明文本。正好就是图2那段抬头说明性文本,删除这段文本,了事。。。
1.要善于使用jquery的error函数
2.注重基础知识,注意事物出现的历史原因如json是为传递而产生,所以其没有注释也是有意而为之。
3.json格式是死的必须严格遵守,json中若要添加注释也要使用"k": "v"的形式,不过这会使得传输信息量大
阅读(...) 评论()最近浏览论坛:
关注/收藏的论坛:
热门论坛推荐:
验证码:输入右侧的字母和数字
下次自动登录
还未注册用户?&&&
您的赞赏是对楼主的鼓励!
1~200元之间
金额须在1~200元之间
去车系频道
自动加载图片
注册iBuick设置密码出现unexpected token in json atposition 0
婶帮忙看看啊怎么回事&&还有个问题(17号会员日保养工时8折&&需要预约吗&&还直接去4S店)
引用 小狼在此
10:41:14 发表于 主楼 的内容:
禁止发布色情、反动及广告内容!
注册过iBuick的说一下啊
引用 小狼在此
10:42:28 发表于 1楼 的内容:
禁止发布色情、反动及广告内容!
正在提交回复,请稍候...
mainTopic.xRender=YES
楼主有更新时通知我
已取消此帖的收藏
您已被楼主屏蔽,不能回复该帖子&&今天跟大家分享我前两天遇见的一个BUG,说出来很难受,因为这个BUG花了我一个多小时去找原因,后来莫名其妙的故障消失了,强迫症犯了的我,居然花了2个多小时去故意再制造这个BUG,只想弄明白WHY?结果大家应该都猜到了,哈哈,没找到!没错,居然没找到!不过类似于Uncaught SyntaxError: Unexpected token ' in JSON at position 2的错误。
& 关于JOSN的方法,大家通过百度应该都深刻理解它的用法:parse用于从一个字符串中解析出json对象;stringify()用于从一个对象解析出字符串。
& 前两天我在做一个本地存储的时候,通过localStorage封装一个函数的时候,将对象通过JOSN.stringify()存储在本地,跳转页面,再通过JOSN.parse()
将json字符串转化为对象时,BUG出现了!!!部分代码如下:
备注:转化为JSON字符串的存储
备注:JSON字符串转化对象
& 后来花了一个多小时找不到问题所在,chrome一直报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1;终于忍不了了,打开度娘,直接把问题复制黏贴,真是什么样的解决方法都有,顿时。。。
& 记得打开的第一个解决方案,是国外的程序员一个小伙子,说了半天,我算明白,他意思说可能JOSN.parse()括号里的内容可能已经是一个对象了,没有再转换的必要了,可我打开我的localStorage明明还是字符串啊(原BUG图已经找不到,如图),死马当活马医,我还是试了一试,绝望!
& 后来试了试网上另一种方法,相信大家也看过,但是有些并没有解决问题!!!不过思路是对的,如图:
备注:JOSN方法对符号的严格定义
备注:报错原因是声明str1时用了单引号
&但是大家能发现的是,其实它的报错是position 2,而并不是我的1;因为它定义的str里面是用单引号引起来的,这倒是提醒了我,JSON将对象转化为字符串存储在本地是有严格要求的,比如说是符号,或是非法字符串之类的,都可能影响后面JOSN.parse的解析。。。
& 此刻已经压抑不住自己蠢蠢欲动的心了,我的本地存储中如果存在非法的字符一定也会引起报错,所以我直接localStorage.clear();清除了之前的本地存储。。。哈哈,果然问题解决,没有再报错。。。没开心一会突然忘了重要的一件事,BUG没有记录!!!(作为一名合格的程序员,要有良好的记录BUG的习惯。)所以才有了后来两个小时的找”BUG“。。。好了,谢谢你这么帅,还能看完我的分享。。。送你一朵?
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:1935次
排名:千里之外
转载:72篇
(7)(65)(2)}

我要回帖

更多关于 unexpected token at 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信