由于Payload内容长度,AJAX POST请求失败

时间:2016-05-10 06:43:37

标签: java json ajax tomcat nginx

我正在尝试通过ajax使用REST服务。为此我发送了jquery AJAX POST请求,该请求失败并显示以下消息。

{"statusCode":400,"error":"Bad Request","message":"Payload content length greater than maximum allowed: 1048576"}

我们尝试发送的有效负载大小约为3 MB。

Service API是在JAVA中开发的,在服务API方面,我们将 nginx作为Web服务器,将tomcat作为应用程序服务器。

如何增加有效负载内容长度,以便我们可以解决上述错误?

AJAX如下:

 $.ajax({
        type: "POST",
        crossDomain: true,
        //contentType: "application/json; charset=utf-8",
        beforeSend: function (request) {
          // Headers as below
          setRequestHeadersOfFMAPI(request);
        },
        contentType: "application/json",
        dataType: "json",
        timeout: (3000 * 60 * 10),
        url: urlContext + "/api/v1/application/google_bps_app/metrics/actuals",
        data: JSON.stringify({
          "actuals": activities
        }),

        success: function (data) {

        }
);

2 个答案:

答案 0 :(得分:1)

编辑Tomcat&#39; server.xml。在<Connector>元素中,添加属性maxPostSize并设置更大的值(以字节为单位)以增加限制。

答案 1 :(得分:0)

为了增加数据包大小,您不需要在Java端执行任何操作,但需要更改服务器上的nginx配置。

您需要为参数client_max_body_size增加大小(可能在配置中设置,如果没有添加)。

记住此参数的大小以字节为单位,因此请计算并将数字设置为最大数据包的最大值。