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);//parsererror; }
就明白错误信息了;
弹出的框里显示:
<!DOCTYPEhtmlPUBLIC"-//W3C//DTDXHTML1.0Transitional//EN""http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">以及<?xmlversion="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的原因及解决方法,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的,在此也非常感谢大家对毛票票网站的支持!