用了很久的ajax,虽很方便,但也很坑爹这里总结了几个经常会遇到的错误
首先,如果是使用jquery的ajax,先查看是否引入了jq库
其次是data属性,向后台传递的数据的类型,一般都是json,后台要用request.getParameter接收的话,
data的格式为 "name="+"张三"+"&age="+20 ,
使用springmvc时,如果获取不到参数,在指定RequestMapping下的ajax变量接收的参数添加注解@RequestParam("xxx")就可以了
请求总是进入error时,注意参数问题,首先看dataType的类型,其次就是如果是json的话,格式有可能出问题,百度搜索json在线验证,看哪里出错了
java拼接字符串时,注意引号之间的逗号','
ajax请求报404:
通常这种问题一般是参数错误,在java的控制器那如果你写了@RequestParam("xxx"),那么页面的action或href参数必须有这些字段
例如:
java代码部分:
@RequestMapping(value = "handleInsertKpoint",method = RequestMethod.POST)
@ResponseBody
public ResponseResult<BsPaper> handleInsertKpoint(
@RequestParam("papkpointid") String papkpointid,
@RequestParam("papid") String papid,@RequestParam("other")String other) {
}
页面部分:
function xx(){
var url = "${ctx}/bspaper/bskpointlist.do?couid=" + couid + "&papid="
+ papid +"&other=1";
location.href=url;
}
参数必须一一对应,哪怕没有参数,你也要加上这个字段,把字段加上就行了,值不写也行:
例如:
function xx(){
var url = "${ctx}/bspaper/bskpointlist.do?couid=" + couid + "&papid="
+ papid +"&other=";
location.href=url;
}
ajax请求报406:
检查ajax对应的后台方法的返回值,是否正确,若返回值怎么弄都弄不对,就把方法换成void返回值,然后通过以下方式:
try {
response.setContentType("application/json;charset=utf-8");//设置编码
response.setCharacterEncoding("utf-8");
response.getWriter().write(jsonStr.toString());//这里的参数需是string类型或者int
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}