[英]Receiving jsp response as JSON in ajax call
我有一个jsp页面,将响应作为json发送。 该页面是通过AJAX调用请求的。 但是响应进入Ajax错误部分而不是成功部分。
以下是我的jsp页面(getHangouts.jsp):
<%
EntityManager em = null;
try{
em = HibernateUtil.getEntityManager();
String uid1 = request.getParameter("uid1");
String uid2 = request.getParameter("uid2");
HangoutBll hb = new HangoutBll();
java.util.List<Hangout> list = hb.getAllBetweenUIds(uid1, uid2, em);
JSONArray arr = new JSONArray();
for(Hangout h: list){
JSONObject obj = new JSONObject();
obj.put("createdOn", h.getCreatedOn());
obj.put("uid", h.getUid());
obj.put("linkingUid", h.getLinkingUid());
obj.put("text", h.getText());
arr.put(obj);
}
response.setContentType("application/json");
PrintWriter outt = response.getWriter();
outt.print(arr);
}
finally{
if(em != null)
em.close();
}
%>
</body>
以下是Ajax的调用:
var req_url = 'getHangouts.jsp?uid1='+uid+'&uid2='+linkingUid;
$.ajax({
type:'post',
url:req_url,
dataType: 'json',
success:function(data){
$.each(data, function (index, obj) {
var hangout = '';
if(obj.uid == uid){
hangout = '<div style="width: 100%; text-align: right;"><span style="background: #b3ecff; border-radius: 5px">'+obj.text+'</span><div>';
}
else{
hangout = '<div style="width: 100%;"><span style="background: #f2f2f2; border-radius: 5px">'+obj.text+'</span><div>';
}
$('#'+'echoText').append(hangout);
});
},
error: function(xHR) {
showMessage("<div class='alert alert-danger'><a href='#' class='close' data-dismiss='alert' aria-label='close'>×</a> "+xHR.responseText+" </div>");
}
});
我在AJAX错误部分中获得以下JSON。
[{
"uid": "Blake",
"text": "Blake: Lets have a coffee..",
"linkingUid": "Liong",
"createdOn": "2017-06-12 01:10:11.0"
}, {
"uid": "Liong",
"text": "Liong: Okay just give me 5 min",
"linkingUid": "Blake",
"createdOn": "2017-06-12 01:11:03.0"
}]
删除getHangouts.jsp
内的所有HTML标记。 返回带有响应的HTML标记可能会发生解析错误,因此调用了错误块。
您还可以在控制台上检查错误:
error: function(xHR,status, error) {
console.log(error);
//console.log(xHR.responseText);
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.