我需要通过ajax响应接收大量数据,并且看起来像实时服务器(nginx)上的某种数据大小限制会导致麻烦。在本地测试服务器(wamp)和实时共享主机apache上我没有限制或问题。目前数据为2.7mb,可能会变大。问题是该脚本将被多个用户使用,我不能强迫任何人增加post_max_size。
脚本非常简单
$.ajax({
type: "post",
dataType: "json",
url: ajaxurl,
data: {
'action': 'get_data',
},
success: function(response, status, xhr) {
if (response.data.html !== null) {
//process html 2.7MB
}
}
});
数据如此之大的原因是json验证和html数据必须具有特殊字符,因此响应几乎是实际正常处理HTML的3倍。这只是一个小例子
<\/div>\r\n\t\t\t<\/div>\r\n\t\t<\/div>\r\n\t\t
现在我不知道如何处理这个问题。以块或者制动响应?如果您有任何建议,请。
更新,我们发现这是某种数据大小限制,但我们无法确定它
如果我们这样做
wp_send_json_success(array(
'html' => substr($html, 0, 1830000),
));
数据正在通过
但1840000
失败了,
我们的测试服务器是 nginx ,而litespeed config client_max_body_size
设置为500M,因此我们不确定这个1.8M限制是什么。