我在尝试进行返回Json的ajax POST调用时遇到内部错误。 ajax调用是从js页面进行的:
$.post(
'FilterAsJson',
$(formWithReportData).serialize(),
function(data){funtion_body})
这是我的Spring MVC调用方法:
@RequestMapping(value = "/Reporting/FilterAsJson", method = RequestMethod.POST)
public @ResponseBody PagedQueryResult<GetEntitlementOverviewReportResult> filterAsJson(@ModelAttribute GetEntitleReportQuery query, HttpSession session)
{
getEntitlementOverviewFromSession(session).updateFromQuery(query, session);
return queryDispatcher.dispatch(query);
}
问题来自于我在此类GetEntitlementOverviewReportResult中设置了几个字段(30个中的17个)。这是一个带有简单setter getter的bean类。如果我设置所有30个字段,它工作正常。 你能否建议如何设置Json响应,以便我能解决这个问题。
答案 0 :(得分:0)
500错误表示您的服务器在处理请求时遇到错误。由于您使用的是AJAX,因此无法从服务器看到完整的消息。
2个选项:
A - 检查服务器日志
B - 见下文:
我知道通过异步调用来检查这一点的最好方法是按F12在您的Web浏览器中显示您的开发人员工具。
然后,单击浏览器工具上的“网络”选项卡,您可以看到应用程序发出的所有请求。
提出给您500错误的请求,然后在网络请求列表中找到它。您应该看到500错误并且能够看到实际输出(服务器响应),它将为您提供实际消息。
答案 1 :(得分:-1)
@RequestMapping(value = "/Reporting/FilterAsJson", headers = "Accept=application/json", method = RequestMethod.POST)
public @ResponseBody PagedQueryResult<GetEntitlementOverviewReportResult> filterAsJson(@ModelAttribute GetEntitleReportQuery query, HttpSession session) {
getEntitlementOverviewFromSession(session).updateFromQuery(query, session);
return queryDispatcher.dispatch(query);
}
<强>已更新强> 原来如此。我没有正确理解问题。
请向我们展示传播@ModelAttribute的类GetEntitleReportQuery。
同时检查填充并非所有字段时方法序列化的内容。它存在吗?
<强>已更新强>
一个主意。
当你没有填满所有课堂时,他会尝试找到有这些领域的课,但却找不到。因此,尝试在Controller中命名您的类并添加绑定结果参数:filterAsJson(@ModelAttribute("query") GetEntitleReportQuery query, HttpSession session, BindingResult result)
也从JSP发送,名称为“query”。