【问题标题】:Post request 1000 item limit发布请求 1000 项限制
【发布时间】:2018-03-29 11:07:48
【问题描述】:

我一直在使用 ktor 在 kotlin 中开发一个迷你 webapp(玩康威的人生游戏)。我遇到了一个问题,不是我在 jquery post 请求中从前端发送的所有数据都发送到服务器。我在前端构造了一个带有 4500 个键的 javascript 对象并将其发布,但服务器只接收到一个存在 1000 个键的对象。做一些谷歌搜索让我找到了一些关于 php 问题的资源,但没有关于直接 javascript 的资源。我正在使用 jquery 3.3.1。这是发布帖子的客户端代码:

    let m = buildBoard();
    // this logs 4500
    console.log("size of posted object: " + Object.keys(m).length);
    $.post("/update", m, (responseJson) => {
        responseJson = JSON.parse(responseJson);
        // this logs 1000, even though it should be the same size as what we posted
        console.log("size of response: " + Object.keys(responseJson).length);
        for(const key of Object.keys(responseJson)) {
            let arr = JSON.parse(key);
            drawCell(parseInt(arr[0]), parseInt(arr[1]), responseJson[key]);
        }
    });

服务器基本上获取它发送的 json 对象(表示板状态)并在将更新的板发送回客户端之前对其进行转换。登录服务器告诉我服务器只收到了 1000 块棋盘,这让我相信问题出在 js 端(但如果有人认为这可能是问题,我很乐意发布服务器代码)。

【问题讨论】:

  • 我会调查你服务器的 json 解析器的限制。这些解析器默认有一个限制,以防止大量数据的攻击
  • 尝试使用wireshark或代理,并检查数据是否真的被发送,应该可以减少问题
  • 您在服务器端使用的是哪台服务器? Tomcat、Jetty、VertX、SpringBoot、RatPack、...?其他 3500 个帖子会发生什么情况,它们是否超时,给出错误 500,...?大多数浏览器一次只能处理 17 个并发帖子
  • 我使用 netty 作为我的服务器 Jan。我也没有发布 4500 个帖子,而是发布了一个具有 4500 个键的对象的帖子,所以我认为并发帖子不是问题。我正在使用 GSON 解析服务器端的 json 数据,并且文档没有提到任何限制,所以我认为这不是正在发生的事情。我将使用wireshark,看看接下来会发生什么。

标签: javascript jquery kotlin


【解决方案1】:

更新:我无法弄清楚为什么存在限制,所以我只是切换到发布字符串化对象并将其解析回服务器上的 JSON,这导致所有数据都进入服务器。

【讨论】:

    猜你喜欢
    • 2020-11-12
    • 1970-01-01
    • 1970-01-01
    • 2015-08-24
    • 2020-03-15
    • 2011-01-25
    • 2021-03-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多