首页 > 解决方案 > 使用 ajax 请求发布大型 JSON 对象

问题描述

我需要帮助在 angularjs 中使用 ajax 将大型 JSON 对象发布到服务器。当我在使用 post 请求中发送带有大约 10000 条记录的 JSON 对象时ArrayList,它被接受并且我得到相同的响应。但是当我上传 30000 条或更多记录并尝试使用 ajax 发送它时,它返回以下错误:-

[io.undertow.request] (default task-5) UT005007: Request was not fully consumed

我怎样才能解决这个问题?

我正在使用 Wildfly 10 和 java 8。我可以增加任何帖子大小参数吗?

标签: javaajaxspring-mvcwildfly

解决方案


您似乎正在使用Undertow来接收 POST 请求。检查设置中选项的值是多少MAX_ENTITY_SIZE,也许它是有限的:

请求实体的默认最大大小。如果实体主体大于此限制,则java.io.IOException在读取请求时(在第一次读取固定长度请求时,当为分块请求读取过多数据时)将在某个时候抛出 a。该值只是默认大小,处理程序可以通过调用io.undertow.server.HttpServerExchange.setMaxEntitySize(long size). 默认为无限制。

正如此线程中所建议的,这可能在 Spring 中使用MultipartConfigFactorybean 进行配置:

@Bean
public MultipartConfigElement multipartConfigElement() {
     MultipartConfigFactory factory = new MultipartConfigFactory();
     factory.setMaxFileSize("100MB");
     factory.setMaxRequestSize("100MB");
     return factory.createMultipartConfig();
}

推荐阅读