$.ajax返回的JSON格式的数据后无法执行success的解决方法
2015-09-15 10:45
821 查看
近段时间做项目,在项目使用了ajax技术,遇到了一个奇怪的问题:"$.ajax返回的JSON格式的数据无法执行success",代码是这样写的:
百思不得其解啊,为什么会这样子呢?检查了一下返回的JSON字符串,我觉得JSON字符串的格式应该没有问题的,于是在网上查了一下,发现有还真有人遇到了和我一样的问题,找出原因所在"是因为我指定了dataType:'json',这样指定之后,对Json格式的要求就非常严格起来了,起初我的json格式是这样写的:"{result:{\"success\":\"true\",\"meg\":\"success\"}}",可这样写不行,得改成这样写:"{\"success\":true,\"mesg\":\"success\"}",如果说是bool类型,则不用加引号,其它的键/值都需要加引号。jquery 1.4以后对json格式变严格了,也就是说必须要这种格式的{"键":"值","键":"值"};像原来的{键:值,键:值}和{'键':'值','键':'值'}这种都是错误的,不合标准,所以jquery返回error。以前没有注意到这样的问题,这次遇到了,也找到了解决办法,在此记录一下!
$.ajax({ .. dataType:'json', ... success:function(jsonData){ //不执行success }, error:function(error){ //总是执行这个error } });
百思不得其解啊,为什么会这样子呢?检查了一下返回的JSON字符串,我觉得JSON字符串的格式应该没有问题的,于是在网上查了一下,发现有还真有人遇到了和我一样的问题,找出原因所在"是因为我指定了dataType:'json',这样指定之后,对Json格式的要求就非常严格起来了,起初我的json格式是这样写的:"{result:{\"success\":\"true\",\"meg\":\"success\"}}",可这样写不行,得改成这样写:"{\"success\":true,\"mesg\":\"success\"}",如果说是bool类型,则不用加引号,其它的键/值都需要加引号。jquery 1.4以后对json格式变严格了,也就是说必须要这种格式的{"键":"值","键":"值"};像原来的{键:值,键:值}和{'键':'值','键':'值'}这种都是错误的,不合标准,所以jquery返回error。以前没有注意到这样的问题,这次遇到了,也找到了解决办法,在此记录一下!
相关文章推荐
- JS清除网页历史记录,屏蔽后退按钮
- js简单运动框架--2 多属性运动
- JS实现仿FLASH效果的竖排导航代码
- 性能调优工具Jstack使用
- JS冒号的作用
- 【JavaScript】允许IE8使用placeholder
- jstat命令详解及显示结果含义
- 【JavaScript】创建命名空间,Class,LOG
- js常用正则
- hcharts中文网 一个js图表库
- 【JavaScript】JavaScript模拟Class
- js数组操作的常用方法
- 【JavaScript】字符串处理函数集合
- D3js教程网
- 【JavaScript】在前台验证表单,必须使用onsubmit="return xx()"的形式
- 妙味课堂——JavaScript基础课程笔记
- xStream完美转换XML、JSON
- 【JavaScript】日期和数字格式化
- js 剪切板应用clipboardData详细解析
- js进度条(原创可用于学习)