5
我正在使用AJAX異步調用返回JSON對象的大型序列化數組(大約75kbs或80k字符)的PHP腳本。每次我嘗試並返回時,它都會遇到3000個字符的限制。在服務器的任何地方或jQuery的ajax實現中是否有最大尺寸設置?AJAX響應大小限制
編輯:3'000限制是Chrome限制,FF有10'000個字符限制,Safari沒有限制。我猜測除了改變我的代碼來分割/減少返回數據之外,沒有其他解決方法。
我正在使用AJAX異步調用返回JSON對象的大型序列化數組(大約75kbs或80k字符)的PHP腳本。每次我嘗試並返回時,它都會遇到3000個字符的限制。在服務器的任何地方或jQuery的ajax實現中是否有最大尺寸設置?AJAX響應大小限制
編輯:3'000限制是Chrome限制,FF有10'000個字符限制,Safari沒有限制。我猜測除了改變我的代碼來分割/減少返回數據之外,沒有其他解決方法。
您可以分割你的JSON和部分
與阿賈克斯$一部分得到我做了一個例子,你
HTML端:
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Document</title>
<script src="jquery.js"></script>
<script>
$(document).ready(function() {
window.result_json = {};
$.get("x.php?part=size",function(data){
var count = data;
for (var i = 0; i <= count; i++) {
$.ajax({
dataType: "json",
url: "x.php",
async: false,
data: "part="+i,
success: function(data){
$.extend(window.result_json,data);
}
});
};
console.log(window.result_json);
});
});
</script>
</head>
<body>
</body>
</html>
PHP端(文件名稱爲x。 php):
<?php
if(isset($_GET['part'])){
function send_part_of_array($array,$part,$moo){
echo json_encode(array_slice($array, $part * $moo,$moo,true),JSON_FORCE_OBJECT);
}
$max_of_one = 3;
$a = array("a","b","c","d","e","f","g","h","i","j");
if($_GET['part'] == 'size'){
echo round(count($a)/$max_of_one);
}else{
send_part_of_array($a,$_GET['part'],$max_of_one);
}
}
?>
首先用$.get
(part = size),檢查有多少片秒。
其次與$.ajax
(部分=(int)的PART-NUMBER),在for循環的一個
最後在for循環瑪吉新獲得JSON老JSON元素$.extend
在window.result_json
注意:$max_of_one
變量決定要發送多少片。
類似:http://stackoverflow.com/q/1151987/1026459 – 2012-04-15 20:01:01
這是ASP雖然 - 我看到,當搜索... – RichieAHB 2012-04-15 20:02:00
[This question](http://stackoverflow.com/questions/898477/ ajax-request-browser-limit)可能會有所幫助。接受的答案指出,這是JSON數組的_depth_重要,而不是它的大小。當你查看你的3k字符響應時,是在數組/對象的開始處,還是在隨機的地方切斷? – Bojangles 2012-04-15 20:02:18