我使用以下代码尝试查找可通过ajax调用发送到服务器的数据量的限制。我们显然使用Sajax。在IE中,在大约1900个字符之后,数据无法通过,我们收到错误。在Firefox中,限制大约在6100左右,但每次调用时似乎都有所不同。这与浏览器有关吗?
还尝试使用POST而不是默认的get并告诉Sajax使用POST根本不起作用。
在任何地方定义的AJAX中发送的数据流大小是否有限制?经验怎么样?
<?
require('sites/includes/Sajax.inc.php');
function str_length_test($str){
return strlen($str);
}
sajax_init();
sajax_export('str_length_test');
sajax_handle_client_request();
?>
<html>
<head>
<title>Multiplier</title>
<script>
<? sajax_show_javascript(); ?>
function do_str_length_test_cb(pwd) {
document.getElementById('str_length').value = pwd;
}
function do_str_length_test() {
sample_field = document.getElementById('sample').value;
x_str_length_test(sample_field, do_str_length_test_cb);
}
</script>
</head>
<body>
<textarea id="sample" name="sample" rows=20 cols=60 onblur="do_str_length_test(); return false;"></textarea>
Size: <input type="text" id="str_length" name="str_length" value="" size=10>
</body>
</html>
答案 0 :(得分:1)
IE中的GET限制为2083个字符,请参阅http://support.microsoft.com/kb/208427
请参阅here了解网址长度以供讨论。
答案 1 :(得分:1)
我在sajax示例中看到了这一点:
$sajax_request_type = "GET";
sajax_init();
sajax_export("add_line", "refresh");
sajax_handle_client_request();
我猜你只是将GET更改为POST。
$sajax_request_type = "POST";
答案 2 :(得分:0)
如果您正在使用GET,则没有明确的限制。它取决于发出请求的浏览器和接收它的服务器。
POST通常受服务器的限制 - 我认为PHP的默认值大约为5MB。