首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用ajax请求发布大型JSON对象

使用ajax请求发布大型JSON对象
EN

Stack Overflow用户
提问于 2019-03-28 17:43:14
回答 2查看 630关注 0票数 1

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

代码语言:javascript
复制
[io.undertow.request] (default task-5) UT005007: Request was not fully consumed

我该如何解决这个问题呢?

我用的是Wildfly 10和java 8,有没有可以增加的post size参数?

EN

回答 2

Stack Overflow用户

发布于 2019-03-28 17:48:55

您似乎正在使用Undertow接收POST请求。检查设置中的MAX_ENTITY_SIZE选项的值是什么,可能是受限制的:

请求实体的默认最大大小。如果entity body大于此限制,则在读取请求时的某个时刻会抛出java.io.IOException (对于固定长度的请求,在第一次读取时,对于分块请求,当读取了太多数据时)。此值仅为默认大小,处理程序可以通过调用io.undertow.server.HttpServerExchange.setMaxEntitySize(long size)覆盖单个请求的此值。默认为无限制。

正如在this thread中所建议的,这可能是使用MultipartConfigFactory bean在Spring中配置的:

代码语言:javascript
复制
@Bean
public MultipartConfigElement multipartConfigElement() {
     MultipartConfigFactory factory = new MultipartConfigFactory();
     factory.setMaxFileSize("100MB");
     factory.setMaxRequestSize("100MB");
     return factory.createMultipartConfig();
}
票数 1
EN

Stack Overflow用户

发布于 2019-03-29 00:03:30

@KarolDowbecki提出的建议可能会奏效,但也有另一种方法。在您正在使用的standalone.xml文件中,可以从以下位置进行更改:

代码语言:javascript
复制
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true"/>

至:

代码语言:javascript
复制
<http-listener name="default" socket-binding="http" redirect-socket="https" enable-http2="true" max-post-size="16777216"/>

在本例中,增加到16MB。至少在Wildfly 16上,默认值为10MB。

或者,如果您想编写脚本以便不必手动修改standalone.xml,则可以使用jboss-cli并运行:

代码语言:javascript
复制
/subsystem=undertow/server=default-server/http-listener=default/:write-attribute(name=max-post-size,value=16777216)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55394427

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档