ajax成功后XML 解析错误:格式不佳

 

就是Ajax发送请求后,意图回显数据时会出现这个错误,貌似chrome浏览器不会报用火狐能看到:

 

可能的原因有两个,

原因 1:就是后台应该返回一个json格式的字符串,但是你返回的是浏览器看不懂的,也就是返回格式错误:正确的应该是这样子的

String result="{"result":"delete User successed"}";

然后

 try {
            response.getWriter().write(result);
        } catch (IOException e) {
            e.printStackTrace();
        }

 原因 2这种情况不是很要紧,就是响应Ajax请求返回的数据时没有手动指定response的contentType在后台指定即可

 

response.setContentType("application/json");
response.getWriter().write(result);

 

setContentType根据需求设置;如想返回简单字符就设置成text/plain;当用springmvc的@ResponseBody是就不需要设置了。

 还有就是如果用的springmvc的话可以使用注解@ResponseBody 放在方法前,如

@RequestMapping("base/checkUsername")
    @ResponseBody
    public Map<String, String> checkUsername(String username) {

然后页面从返回的map中取值即可。

还有一种可能就是后台返回json数据时 本应该返回一个带数据结构的数据,但是给了一个null值也会导致解析不佳。处理办法,可参照如下

List<InstitutionContent>ls=new ArrayList();
            return ls;

 

原文地址:https://www.cnblogs.com/notably/p/10580353.html