我正在尝试使用JSP、Jquery和AJAX编写一个简单的应用程序,以便在页面上获取和显示数据。
下面是我的ajax函数:
$.ajax({
type:"POST",
url:"interface_load_status_page.jsp",
data:dataString,
dataType:"json",
success: function(data, textStatus, jqXHR){
$("#response").html("");
$("#response").append(data);
},
});只要dataType设置为"text“,ajax调用就可以正常工作。不幸的是,当它被设置为json时,我需要它工作。下面是ajax函数调用的JSP的代码
<%
response.setContentType("application/json");
response.setCharacterEncoding("UTF-8");
String date = request.getParameter("date");
System.out.println("Date: "+date);
if (date != null) {
DBAccess acc = new DBAccess();
ArrayList<InterfaceLoadStatus> loadStatus = acc
.loadStatusQuery(date);
//System.out.println(loadStatus);
out.println(Utils.getJSONLoadStatus(loadStatus));
}
%>JSP所做的是将查询结果转换为JSON格式,如下所示:
{"success":true,"interfaceloadstatus":[{"bType":"COC","start":"2013-04-22 03:30:10.0","end":"2013-04-22 04:35:38.0","exe":"01:05:28","handOff":"Y"},{"bType":"DST","start":"2013-04-22 00:10:09.0","end":"2013-04-22 00:23:17.0","exe":"00:13:08","handOff":"Y"},{"bType":"HTL","start":"2013-04-22 00:10:10.0","end":"2013-04-22 01:17:14.0","exe":"01:07:04","handOff":"Y"},{"bType":"RC","start":"2013-04-22 00:10:11.0","end":"2013-04-22 00:45:17.0","exe":"00:35:06","handOff":"Y"},{"bType":"AIR","start":"2013-04-22 03:00:16.0","end":"2013-04-22 04:03:58.0","exe":"01:04:42","handOff":"Y"},{"bType":"VP","start":"2013-04-22 03:00:16.0","end":"2013-04-22 04:03:58.0","exe":"01:04:42","handOff":"Y"},{"bType":"AIR-IAR","start":"2013-04-22 09:45:06.0","end":"2013-04-22 10:24:51.0","exe":"00:40:45","handOff":"Y"}]}好了,现在JSON输出是固定的,但是JQuery ajax函数仍然不能识别它
发布于 2013-05-03 03:31:32
根据www.jsonlint.com的说法,每一行都是有效的JSON。另一方面,并不是整个输出都是有效的json,所以如果不是逐行输入,这可能是原因所在。
发布于 2019-04-13 05:50:35
我知道这个问题很老了,你可能早就忘记了它,但我刚刚遇到了同样的问题,所以我想我应该分享我所做的,以防其他人正在寻找解决方案。
如下所示:
JSP
<%@ page contentType="text" %>
*JSON here*JS
var jsonData = JSON.parse(data);https://stackoverflow.com/questions/16346166
复制相似问题