【发布时间】:2013-11-28 05:45:20
【问题描述】:
successs(userSurpriseResponse) { // success method of another ajax call
var updateFeedbackSeenURL = "/" + contextName + "/service/updateseenfeedbacks/";
var responseForSurprise = JSON.stringify(userSurpriseResponse);
var surpriseResponse = JSON.parse(responseForSurprise);
var feedback = surpriseResponse.feedback
$.ajax({
header: "Accept: application/json",
url: updateFeedbackSeenURL,
type: 'PUT',
crossDomain: false,
async: false,
cache: false,
contentType: "application/json",
data:JSON.stringify(feedback),
dataType: 'json',
success: function() {
alert("updated seenfedback");
},
error: function(xhr, ErrorText, errorThrown) {
alert("failed inside seenfedback");
return false;
}
});
}
这里,来自服务器端的userSurpriseResponse 实际上是Surprise 类的对象。 Surprise 类有一个名为feedback 的属性。实际上是ArrayList<FeedBack>。我试图将整个数组列表发送回服务器,以便根据场景进行一些处理。当我发送呼叫时,我得到一个带有 apache tomcat 的内部服务器 Errror( 500 (Internal Server Error) ,并带有以下日志
*******************************************************************************************
java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to com.tcs.teg.msgame.core.domain.FeedBack
at com.tcs.teg.msgame.server.dao.FeedBackDAOImpl.updateSeenFeedbacks(FeedBackDAOImpl.java:123)
at com.tcs.teg.msgame.server.service.SurpriseBoxServiceImpl.updateSeenFeedbacks(SurpriseBoxServiceImpl.java:129)
at com.tcs.teg.msgame.server.controller.SurpriseBoxController.updateSeenFeedbacks(SurpriseBoxController.java:40)
*******************************************************************************************
来自 ajax 调用的请求映射由 SurpriseBoxController.java 处理,如下所示
*******************************************************************************************
from line no:40
@RequestMapping(value = "/updatefeedbackseen/", method = RequestMethod.PUT, produces = "application/json")
@ResponseBody
void updateFeedBackSeen(@RequestBody List<FeedBack> feedback) {
feedBackService.updateFeedBackSeen(feedback);
}
*******************************************************************************
【问题讨论】:
-
是的,因为这个控制器没有生成 json。尝试从此控制器返回 json。
-
你的 updateFeedBackSeen 方法有问题,异常大声说出来
标签: jquery ajax google-chrome spring-mvc put