java - Ajax 不显示返回的 json
问题描述
我正在尝试我的第一个 Web 应用程序,我试图使用 Ajax 调用从服务器获取和检索 json 数据,但由于某种原因,我无法在 ajax 调用后看到 json 响应。
我读了几篇关于此的帖子,但没有运气,有人可以在这里帮助我...
<form method="post">
<input id="show" type="submit" value="submit" />
</form>
<div id="displayNewsDiv"></div>
<script type="text/javascript" src="jquery-1.4.4.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#show").click(function() {
alert("h");
$.ajax({
url: "News",
type: "Post",
data: {"results":true},
dataType: "json",
success: function(data) {
debugger
alert(data);
}
})
/* $.post("News", {"results": true}, function(data) {
debugger
alert(data);
console.log("done")
console.log(data)
}) */
})
})
</script>
新闻.java
protected void doPost(HttpServletRequest request, HttpServletResponse response) {
List<String> newsList = new ArrayList<String>();
Path path = Paths.get(request.getServletContext().getRealPath("helpTextFile.txt"));
try {
newsList = Files.readAllLines(path);
PrintWriter writer = response.getWriter();
//writer.println(writer);
String json = new Gson().toJson(newsList);
response.setContentType("application/json");
//new Gson().toJson(newsList, writer);
writer.write(json);
} catch (IOException e) {
e.printStackTrace();
}
}
档案资料:
new_12314124124:2018.06.09:2:News 1
new_12314124124:2018.03.03:1:News 2
new_12314124124:2018.04.07:3:News 3
我在调试模式下运行,我可以看到列表中填充的数据,它转换为 json 没有错误,但我仍然无法看到数据,也无法在 ajax 中运行我的调试器。
解决方案
您应该为 JSON 响应设置 contentType。
response.setContentType("application/json");
写入 json 数据后,在 printWriter 对象上调用 flush() 方法。
writer.flush();
推荐阅读
- arrays - 我可以在 Google 表格中使用 Vlookup 和 CountA 来查询 B 列中有多少个与 A 列具有相同值的非空单元格吗?
- redis - 自定义redis缓存数据目录
- java - 如何使用具有相同 CronTrigger 对象的 Quartz 调度两次调度作业?
- c - 分段错误(c语言)
- python - 使用带有 Huggingface Accelerate 的“gloo”后端
- reactjs - 调度后useSelector不更新值
- javascript - QuaggaJS http问题
- c# - 如何在不使用 Task.Delay 或 await 的情况下编写异步方法
- spring - Spring Session:更改“x-auth-token”的名称
- qml - 使用 vlc-qt 时无法注册 qml 类型