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 获取图片颜色
Apr 05 Javascript
javascript 写类方式之九
Jul 05 Javascript
jquery 3D球状导航的文章分类
Jul 06 Javascript
15款优秀的jQuery导航菜单插件分享
Jul 19 Javascript
JavaScript高级程序设计 阅读笔记(十七) js事件
Aug 14 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
Jun 04 Javascript
利用JS实现数字增长
Jul 28 Javascript
jquery实现的回旋滚动效果完整实例【附demo源码下载】
Sep 20 Javascript
ES6入门教程之Iterator与for...of循环详解
May 17 Javascript
Angular实现下载安装包的功能代码分享
Sep 05 Javascript
vue微信分享 vue实现当前页面分享其他页面
Dec 02 Javascript
分享一个vue实现的记事本功能案例
Apr 11 Vue.js
详解使用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读取XML值的代码(推荐)
2011/01/01 PHP
php在项目中寻找代码的坏味道(综艺命名)
2012/07/19 PHP
php另类上传图片的方法(PHP用Socket上传图片)
2013/10/30 PHP
YII2框架中使用yii.js实现的post请求
2017/04/09 PHP
Javascript 调试利器 Firebug使用详解六
2009/07/05 Javascript
jQuery的写法不同导致的兼容性问题的解决方法
2010/07/29 Javascript
JS操作select下拉框动态变动(创建/删除/获取)
2013/06/02 Javascript
javascript 终止函数执行操作
2014/02/14 Javascript
使用JQuery库提供的扩展功能实现自定义方法
2014/09/09 Javascript
Javascript中的默认参数详解
2014/10/22 Javascript
Javascript 高阶函数使用介绍
2015/06/15 Javascript
浅谈javascript中replace()方法
2015/11/10 Javascript
分享jQuery封装好的一些常用操作
2016/07/28 Javascript
JS打开摄像头并截图上传示例
2017/02/18 Javascript
jQuery Masonry瀑布流布局神器使用详解
2017/05/25 jQuery
用nodejs实现json和jsonp服务的方法
2017/08/25 NodeJs
基于Vue的移动端图片裁剪组件功能
2017/11/28 Javascript
Nodejs Express 通过log4js写日志到Logstash(ELK)
2018/08/30 NodeJs
JavaScript的Proxy可以做哪些有意思的事儿
2019/06/15 Javascript
JS常见面试试题总结【去重、遍历、闭包、继承等】
2019/08/27 Javascript
使用layui+ajax实现简单的菜单权限管理及排序的方法
2019/09/10 Javascript
浅谈JavaScript中等号、双等号、 三等号的区别
2020/08/06 Javascript
在Python中使用swapCase()方法转换大小写的教程
2015/05/20 Python
Python实现Windows和Linux之间互相传输文件(文件夹)的方法
2017/05/08 Python
在Python中使用gRPC的方法示例
2018/08/08 Python
Python PIL读取的图像发生自动旋转的实现方法
2019/07/05 Python
Python 字符串处理特殊空格\xc2\xa0\t\n Non-breaking space
2020/02/23 Python
给keras层命名,并提取中间层输出值,保存到文档的实例
2020/05/23 Python
Python如何读取、写入CSV数据
2020/07/28 Python
CSS3属性 line-clamp控制文本行数的使用
2020/03/19 HTML / CSS
CSS3实现歌词进度文字颜色填充变化动态效果的思路详解
2020/06/02 HTML / CSS
HTML5 canvas基本绘图之绘制线段
2016/06/27 HTML / CSS
世界上最伟大的马产品:Equiderma
2020/01/07 全球购物
小学班主任研修日志
2015/11/13 职场文书
K8s部署发布Golang应用程序的实现方法
2021/07/16 Golang
numpy array找出符合条件的数并赋值的示例代码
2022/06/01 Python