ajax请求返回数据成功但是一直进入error方法中
后台使用@Responsebody注解将返回值转换为json数据
@Responsebody 表示该方法的返回结果直接写入 HTTP response body 中一般在异步获取数据时使用,在使用 @RequestMapping 后,返回值通常解析为跳转路径,加上 @Responsebody 后返回结果不会被解析为跳转路径,而是直接写入 HTTP response body 中。比如异步获取json数据,加上 @Responsebody 后,会直接返回json数据。
若直接请求方法返回一个String值,如:return "success"那么返回的是json字符串,还是一个字符串,所以ajax请求不会走success方法,而是直接进入error方法,返回parserror的错误信息,所以我们需要返回的是一个json类型的值(String str = "{\"result\":\"success\"}"); 若只想返回一个String值,导入以下三个jar包,此时的dataType不能写成json,可以写成text,也可以不写。
com.fasterxml.jackson.core
jackson-databind
2.9.3
com.fasterxml.jackson.core
jackson-annotations
2.9.3
com.fasterxml.jackson.core
jackson-core
2.9.3
application/json;charset=UTF-8
但是有一点要注意,当在配置文件添加以上防止中文乱码的配置时:此时dataType必须添加,否则只会进入error方法中。
json字符串就是字符串,只不过字符串的内容格式是json格式的。
json对象是对象 ,是json格式的对象,json格式就是键值对,键可以是字符串也可以数字,值可以是字符串也是可以是数值,还可以是数组。