为啥我的来自 Django 的 JSON 在大约 2.1MB 处被截断?
Posted
技术标签:
【中文标题】为啥我的来自 Django 的 JSON 在大约 2.1MB 处被截断?【英文标题】:Why is my JSON from Django being cut-off at about 2.1MB?为什么我的来自 Django 的 JSON 在大约 2.1MB 处被截断? 【发布时间】:2014-04-29 10:40:11 【问题描述】:我有一个 Django 应用程序和一个包含 2.8MB JSON 的 Ajax 响应(对 POST 的) JSON 在离开服务器时是有效的,但是当浏览器获取它时(jQuery 1.9),它已被截断为大约 2.1MB(并且无法解析)。确切大小各不相同 - 请参阅下面的数字。
SENT:
2806260
RECIEVED:
2157907
2133383
2149795
2138351
2135271
2137015
2134291
较小的响应效果很好 - 只是这么大的响应会被截断。
收到的大小似乎总是一个奇数,也许我在这里发疯了,但它们似乎都是素数或大素数的倍数。这是真的吗?这是巧合吗?什么会截断我的 JSON?
(RHEL6.5 64bit, python2.6, django1.6, jquery1.9)
【问题讨论】:
一个 few 不同的 platforms 的上传限制约为 2MB。你能多谈谈你的服务器堆栈吗? (你没有说你使用的是什么网络服务器。) 我同意两位,一些平台有 ~2MB 的限制。但是您确定这真的是您的应用程序问题吗?也许您应该考虑较小的请求,以便给用户一些更好的“立即”响应。我希望您将大量数据转储到将要使用的客户端,这将浪费用户等待的时间。 当时我使用的是 Django 开发服务器。我同意,“2MB”这个数字似乎很常见,但如果它是堆栈中某个点的“限制”,为什么接收的字节数会像它一样相差几千? 是的,发送 2MB 是相当多的,但这是一个内部应用程序,而不是公共网站。我在浏览器中的数据上做一个花哨的过滤器。如果这是一个公共网站,我不会这样做。 【参考方案1】:没有计时数据,但看起来这可能与超时有关。 检查获得截断响应需要多长时间,并在服务器端寻找类似的超时。
【讨论】:
以上是关于为啥我的来自 Django 的 JSON 在大约 2.1MB 处被截断?的主要内容,如果未能解决你的问题,请参考以下文章