1、问题概述
开发时,浏览器控制器(Console)报错:XML解析错误:格式不佳
出现场景1:通过jQuery发送异步请求的时候,后端返回json类型的数据,异步请求交互没有问题,但是浏览器报错。问题是没有设置响应的类型(conent-type)。
出现场景2:发送ajax异步请求的时候,后端返回json类型的数据,但是返回的json格式不正确,如需要返回的json必须是双引号,而不能是单引号等问题。这种问题在layui的数据表格中经常的出现。
出现场景3:这种情况比较少见,就是开发者在测试的时候,没有通过tomcat服务器打开页面,而是通过浏览器直接打开页面,这种使用默认使用的file:///,而不是http://,使用的协议不同,解析错误。
问题常出现在servlet工程中,spring和springboot工程基本不需要设置。
2、如果不会使用异步请求看下面的链接
https://blog.youkuaiyun.com/tangshiyilang/article/details/128223393
3、场景1:解决办法
当前问题建议使用:文本格式和json格式
后端设置响应头的内容类型为html格式:response.setContentType("text/html;charset=utf-8");
后端设置响应头的内容类型为文本格式:response.setContentType("text/plain");
后端设置响应头的内容类型为json格式:response.setContentType(“application/json”);
后端设置响应头的内容类型为xml格式:response.setContentType(“application/xml”);
4、场景2:解决办法
仔细检查json格式,如果返回需要双引号,如下:
response.getWriter().print("{\"code\":\"1\"}");
说明:使用\转义字符