json - 当我期望 JSON 时得到 "XML Parsing Error: not well-formed"

标签 json ajax xml servlets

我正在运行一个简单的网站,它使用 ajax 和 jquery 与 TestServlet 进行通信。 servlet 使用 doGet() 给出一个 JSON 对象,如下所示:

protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
    String json = "{\"name\": \"jsontest\",\"type\":\"jsonobject\"}";
    response.getWriter().append(json);
}

当按下页面上的按钮时,会发出如下 ajax 请求:

$.ajax({
 type: "GET",
 url: "test",
 data: "",
 dataType: "json",
 success: function(reply) { window.alert("Success\n"+reply); },
 error: function(err) { window.alert(err); }

});

请求成功,但 reply 为 null,我从 Web 控制台获取:

XML Parsing Error: not well-formed
Location: http://localhost:8585/web/test
Line Number 1, Column 1: {"name": "jsontest","type":"jsonobject"}

我尝试指定 mimeType: "application\json" 但我得到了相同的行为。相反,当我不指定 dataType 或输入 contentType: "json" 时,我成功地正确读取了 JSON 字符串,但仍然收到 XML 解析错误.

谁能解释一下为什么我在交换 JSON 时遇到 XML 解析错误?

注意:我使用的是 Firefox 和 Tomcat9。

提前谢谢您。

最佳答案

简单地说,我发现虽然我期望通过 dataType 获得请求中的 json 内容,但 servlet 并未指定其响应也使用该类型进行编码。 添加:

response.setContentType("application/json");

解决了问题。

关于json - 当我期望 JSON 时得到 "XML Parsing Error: not well-formed",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51347771/

相关文章:

json - 如何为azure虚拟机创建数据盘?

javascript - 如何在 AngularJS 中发出 http 请求以获取 JSON 数据格式?

java - XStream、循环引用异常

比较 C 中的两个 XMLNode(libxml 库)

php - Ajax 完成后返回 javascript 代码

javascript - 如何使用 "javascript"访问属性文件

ruby-on-rails - Ruby on Rails Instagram Gem 点赞和评论计数无法正常工作

javascript - 使用 JavaScript 对 JSON 对象进行排序

javascript - 如何使用ajax将我的jquery数组保存到php

Javascript:同步使用异步 AJAX