当前位置: 首页 > 知识库问答 >
问题:

JSON响应导致Http 500内部服务器错误

汤飞羽
2023-03-14

我在尝试进行返回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);
}

问题是,我在这个类中只设置了几个字段(30个字段中有17个)。这是一个具有简单setter-getter的bean类。如果我设置了所有30个字段,效果很好。你能建议如何设置JSON响应,以便我可以纠正这个问题吗。

共有2个答案

朱锦
2023-03-14
@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);
}

哦,我明白了。我并没有完全理解这个问题。

>

还要检查当您填写并非所有字段时方法序列化了什么。它存在吗?

更新一个想法。当你填满类的所有字段时,他试图用这些字段找到类,但找不到。所以,试着在Controller中命名你的类,并添加绑定结果参数:filterAsJson(@Model属性("查询")GetEntitleReportQuery查询、Http会话、BindingResult结果)也从JSP发送名称为“查询”。

葛念
2023-03-14

500错误表示您的服务器在处理请求时遇到错误。因为您使用的是AJAX,所以看不到来自服务器的完整消息。

2个选项:

A-检查服务器日志

B-见下文:

我知道用异步调用检查这一点的最好方法是按F12键在web浏览器中打开开发人员工具。

然后,单击浏览器工具上的“网络”选项卡,可以看到应用程序发出的所有请求。

发出错误为500的请求,然后在网络请求列表中找到它。您应该可以看到500错误,并能够看到实际的输出(服务器响应),这将为您提供实际的消息。

 类似资料:
  • 问题内容: 我正在尝试执行此AJAX帖子,但是由于某些原因,我遇到了服务器500错误。我可以看到它在控制器中达到了断点。因此问题似乎出在回调上。任何人? 这是应该返回的字符串: 问题答案: 我怀疑服务器方法在通过断点后会引发异常。使用Firefox / Firebug或IE8开发人员工具查看您从服务器获得的实际响应。如果有异常,您将获得YSOD html,这应有助于您确定要查找的位置。 还有一件事

  • 当我尝试在Hibernate中运行指定的select语句时,我遇到了一个内部服务器错误(没有写入Tomcat日志,只有500个错误)。运行传统的简单<code>select<code>语句时,我没有问题。 我正在将hibernate查询记录到我的控制台。工作正常的hibernate查询只是一个传统的select语句(): 运行< code>select x.property时的hibernate查

  • 我试图让一个JAX RS资源返回一个带有JSON对象的响应。当我通过资源类中的println()调用显示响应属性时,我看到MediaType被正确设置为“Application/json”,有一个实体与预期类型(Salesorder)、状态(status. FOUND)的响应相关联,并且响应对象是一个外部Jaxrs响应的实例。但是不知何故,当浏览器(或泽西客户端)收到响应时,这些响应属性似乎被“替

  • 在使用包含非ASCII字符的cookie响应任何请求时,ColdFusion 11似乎会崩溃。IIS 8.5返回HTTP 500内部服务器错误(空白白页)。 复制的步骤: > 在Javascript控制台中运行以下命令,并尝试加载任何CFML页面:

  • 我在jmeter V3中录制了脚本。3通过IE浏览器,然后进行关联。当我运行这个脚本时,它会收到内部服务器错误500的响应,但是它在IE浏览器中手动工作正常,而且在记录这个场景时,它不会发生。 我还在网络IE F12开发者工具中交叉验证了头管理器和请求头,它是最新的。 取样器请求 获取请求 它只是一个简单的获取请求。非常感谢您在jmeter中帮助处理此错误。

  • 我是新的角度6。我用spring boot开发了一个post服务,当我通过postman测试它时,它工作得很好,但当我用web浏览器测试它时,它给了我这个错误: HttpErrorResponse ;{headers:HttpHeaders,status:500,statusText:“ok”,URL:“http://localhost:8080/api/test/ordermiss”,ok:fa