问题:
在做ssm项目时,通过ajax传数据到action,然后action再返回结果,但是ajax的success接收不到
前台代码:
<script type="text/javascript">
$(function(){
$("#bt1").click(function(){
$.post(
"supplier/doAjax.action",
{supId:1001,supName:"name1001"},
function(json){
alert();
alert(json.supId+"||"+json.supName);
},
"json"
);
})
})
</script>
后台代码:
@RequestMapping("/doAjax")
@ResponseBody //如果返回json格式,需要这个注解
public Object doAjax(Supplier supplier){
System.out.println("---doAjax.supplier:"+supplier);
supplier.setSupName("supName1");
return supplier;
}
解决方案:
因为是初学,所以很多错误不清楚,在网上查了资料之后,发现是没有引入json的jar包,引入之后,不需要再配置什么就可以接收到action返回的数据了。
jar包如下:
jackson-databind-2.7.4.jar
jackson-annotations-2.7.4.jar
jackson-core-2.7.4.jar
解决参考:https://blog.youkuaiyun.com/gsycwh/article/details/56675836
补充:
如果ajax指定返回的是数据类型是json,后台返回的数据不是严格的json类型,那么既不会进入ajax的success的方法,也不会进入到error方法。