首先说一下ajax的调试语句,可以快速定位到错误原因,调试代码的添加方式是在success后边加error匿名函数,通过error中的信息获取错误原因,此外,除了ajax自身调试,还需要借助浏览器的调试工具,按下F12即可进入调试界面。接下来按照常见错误的出现频率进行说明。
$.ajax({
type : "POST",url : '/pineBang/ajax/aQuery2.do',data : msg,dataType:’JSON’
success: function(data){
alert('success');
}, error: function(XMLHttpRequest,textStatus,errorThrown) {
alert(XMLHttpRequest.status);
alert(XMLHttpRequest.readyState);
alert(textStatus);
},});
1、错误状态码是403,或者出现"parsererror"错误
这两个错误是我在编程调试的时候最常见错误信息,400系列的错误通常想到的就是页面不存在即URL写错误了,但是403错误通常还表示请求参数不合法,这种情况通常发生在表单提交中,说白了就是你表单提交的数据类型和后台接收的类型不一致。
以时间类型举例,在页面表单中,大部分使用时间控件来做时间处理,如果出现403错误,可能的原因有:
(1)、时间控件生成的值是字符串类型,但是后端对象里面对应的属性是Date类型;
(2)、前端对时间控件生成的值进行处理转成date类型,但是后端对象里面对应的时间属性是String类型;
由于在提交过程中参数过多,可能会出现某些时间控件生成的数据格式不正确,建议使用自定义js方法将时间控件的值转换成文本。
parsererror错误通常是指数据类型转换错误,出现这种错误首先检查一下页面中ajax请求里面是否写对了dataType:’JSON’,然后去后端代码中检查数据是否转换成JSON格式传给前台。
这类错误的原因比较多,但是总的来讲就是请求的资源找不到,遇到这类错误需要首先检查一下请求的URL地址是否正确,或者请求的地址是否有效。
3、500系列错误
(1)后台使用了toString()方法,但是前段提交给后台的值是NULL,此时后端可以调用java的common包下的一个isEmpty()方法去判断对象是否为空;
(2)后端代码问题如逻辑判断问题或其他异常,这个需要自己打断点去排查;