JS 调试中常见的报错问题解决方法


Posted in Javascript onMay 20, 2017

报错:Uncaught SyntaxError: Unexpected token o in JSON at position 1

at JSON.parse (<anonymous>)
at Function.m.parseJSON (jquery.js:8515)
at Object.success (crud.html:45)
at j (jquery.js:3143)
at Object.fireWith [as resolveWith] (jquery.js:3255)
at x (jquery.js:9309)
at XMLHttpRequest.b (jquery.js:9713)

(翻译:不能捕获的语法错误:json数据位置0处发现不能识别的标记<)

原因:json格式错误

返回数据 语句用echo json_encode($data,true);但是用了echo json_decode($data);
由于函数使用不对,返回的data不是json数据,第一个字符是“ <”,所以报错Unexpected token < in JSON at position 0(翻译:json数据位置0处发现不能识别的标记<);

如果使用 $.ajax({})而不是 $.get() 区别: 当使用 $.ajax 时,php返回的 JSON字符串已经被 ajax 中的属性 dataType 将请求的参数类型要求为String类型(dataType:'json')返回为 JSON对象,不需要再次转换;当使用 $.get 时,服务器返回的数据格式为原始的字符串数组,因此,需要将返回的字符串转换为数组,使用 JSON.parse(jsonString) ,将JSON字符串解析为JSON对象;

json教程见:http://www.w3school.com.cn/json/index.asp

解决办法:

修改为echo json_encode($data,true);

将php的代码调试代码 echo()去掉,就不会再报这样的错误了:

$json = json_encode(array(
      "resultCode"=>200,
      "message"=>"查询成功!",
      "data"=>$data
    ),JSON_UNESCAPED_UNICODE);
    
    //注释掉
    /*echo($json);*/

如果使用 $.ajax 时,不需要注释

//不需要注释
echo($json);

如果不是该问题,请检查php文件给返回的data数据,是否标准json格式。如果php文件中有var_dump、echo、注释等,都会对返回的json数据有影响。

以上这篇JS 调试中常见的报错问题解决方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript在网页中画圆的函数arc使用方法
Nov 13 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
Dec 04 Javascript
jQuery通过ajax快速批量提交表单数据
Oct 25 Javascript
js鼠标经过tab选项卡时实现切换延迟
Mar 24 Javascript
纯JS实现图片验证码功能并兼容IE6-8(推荐)
Apr 19 Javascript
vue watch自动检测数据变化实时渲染的方法
Jan 16 Javascript
Node.js Buffer用法解读
May 18 Javascript
一文了解Vue中的nextTick
May 06 Javascript
Angular6使用forRoot() 注册单一实例服务问题
Aug 27 Javascript
js计算最大公约数和最小公倍数代码实例
Sep 11 Javascript
vue中watch和computed为什么能监听到数据的改变以及不同之处
Dec 27 Javascript
解决Vue @submit 提交后不刷新页面问题
Jul 18 Javascript
详解使用angular-cli发布i18n多国语言Angular应用
May 20 #Javascript
ztree实现权限横向显示功能
May 20 #Javascript
神级程序员JavaScript300行代码搞定汉字转拼音
May 20 #Javascript
在使用JSON格式处理数据时应该注意的问题小结
May 20 #Javascript
微信小程序利用co处理异步流程的方法教程
May 20 #Javascript
关于jQuery库冲突的完美解决办法
May 20 #jQuery
layui文件上传实现代码
May 20 #Javascript
You might like
php文件打包 下载之使用PHP自带的ZipArchive压缩文件并下载打包好的文件
2012/06/13 PHP
php环境无法上传文件的解决方法
2014/04/30 PHP
PHP传参之传值与传址的区别
2015/04/24 PHP
PHP基于文件存储实现缓存的方法
2015/07/20 PHP
完美解决thinkphp唯一索引重复时出错的问题
2017/03/31 PHP
JQuery Ajax 跨域访问的解决方案
2010/03/12 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
jQuery实现复选框成对选择及对应取消的方法
2015/03/03 Javascript
javascript实现简单的进度条
2015/07/02 Javascript
js实现随屏幕滚动的带缓冲效果的右下角广告代码
2015/09/04 Javascript
分离与继承的思想实现图片上传后的预览功能:ImageUploadView
2016/04/07 Javascript
js字符串截取函数slice、substring和substr的比较
2016/05/17 Javascript
bootstrap table操作技巧分享
2017/02/15 Javascript
微信小程序 wx:for的使用实例详解
2017/04/27 Javascript
利用jquery去掉时光轴头尾部线条的方法实例
2017/06/16 jQuery
基于Datatables跳转到指定页的简单实例
2017/11/09 Javascript
基于Vue实现关键词实时搜索高亮显示关键词
2018/07/21 Javascript
Vue.js 利用v-for中的index值实现隔行变色
2018/08/01 Javascript
ios设备中angularjs无法改变页面title的解决方法
2018/09/13 Javascript
[02:09]DOTA2辉夜杯 EHOME夺冠举杯现场
2015/12/28 DOTA
Python实现钉钉发送报警消息的方法
2019/02/20 Python
python地震数据可视化详解
2019/06/18 Python
10分钟用python搭建一个超好用的CMDB系统
2019/07/17 Python
python3 enum模块的应用实例详解
2019/08/12 Python
Django继承自带user表并重写的例子
2019/11/18 Python
python判断字符串以什么结尾的实例方法
2020/09/18 Python
ETO男装官方网店:ETO Jeans
2019/02/28 全球购物
介绍一下sql server的安全性
2014/08/10 面试题
What's the difference between Debug and Trace class? (Debug类与Trace类有什么区别)
2013/09/10 面试题
如何用Python输出一个Fibonacci数列
2016/08/28 面试题
教育实习生的自我评价分享
2013/11/21 职场文书
市场营销战略计划书
2014/05/06 职场文书
银行纠风工作实施方案
2014/06/08 职场文书
2014年幼儿园小班工作总结
2014/12/04 职场文书
优秀英文求职信范文
2015/03/19 职场文书
小学生安全教育主题班会
2015/08/12 职场文书