这里有新鲜出炉的 jQuery 示例,程序狗速度看过来!
jQuery 是一个兼容多浏览器的 javascript 框架,核心理念是 write less,do more(写得更少, 做得更多)。jQuery 在 2006 年 1 月由美国人 John Resig 在纽约的 barcamp 发布,吸引了来自世界各地的众多 JavaScript 高手加入,由 Dave Methvin 率领团队进行开发。
这篇文章主要介绍了 jQuery 通过 ajax 方法获取 json 数据不执行 success 的原因及解决方法的相关资料, 需要的朋友可以参考下
1.jquery 通过 ajax 方法获取 json 数据不执行 success 回调
问题描述:jquery 通过 ajax 方法获取 json 数据不执行 success 回调方法
问题原因:json 格式存在问题或不符合标准写法,导致总是执行 error 回调方法
解决方案:使 json 格式务必符合下述 3 个标准写法:
1)键名称:用双引号括起;
2)字符串:用双引号括起;
3)数字,布尔值不需要使用双引号括起 ;
注意:一定是双括号!
2.jQuery 中 ajax 使用 json 数据类型总是跳过 success 执行 error 语句
执行函数
- error : function(XMLHttpRequest, textStatus, errorThrown) {
- //这个error函数调试时非常有用,如果解析不正确,将会弹出错误框
- alert(XMLHttpRequest.responseText);
- alert(XMLHttpRequest.status);
- alert(XMLHttpRequest.readyState);
- alert(textStatus); // parser error;
- }
就明白错误信息了;
弹出的框里显示:
- <!DOCTYPE html PUBLIC "-//W3C //DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD
- /xhtml1-transitional.dtd">
- 以 及
- <?xml version="1.0" encoding="gb2312" ?>
这两句话,虽然不清楚为什么,我删除之后,就成功执行 success 了
3.$.ajax() 中的 URL 跨域时,总是不执行 success,老进入 error
1)我加上 ServletActionContext.getResponse().setHeader("Access-Control-Allow-Origin","*");
解决跨域问题,就顺利进入 success 了
2)dataType:"json",
去掉 看能进 success 不 。
dataType 是预期服务器返回过来的信息类型 。
原因:返回的数据类型一定要符合定义的数据类型。即如果你定义的 dataType 是 json 类型的,那么返回来的数据一定是 json 才可以,平且不然就会执行 error 里的程序块儿。
(1) 同时需要特别的注意返回的 JSON 数据是否是严格的 JSON 格式.
(2) 也应该严重关切当后台返回的是一个 List 数据(List 当中的数据是 Json 格式)时,有没脏数据即不是严格的 JSON 格式。
以上所述是小编给大家介绍的 jQuery 通过 ajax 方法获取 json 数据不执行 success 的原因及解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对 phperz 网站的支持!
来源: http://www.phperz.com/article/17/0507/331166.html