AJAX浏览器依赖限制发送的数据长度? (SAJAX)

时间:2009-01-26 20:51:29

标签: php ajax xmlhttprequest cross-browser sajax

编辑:现在问题变成了,我怎么告诉Sajax使用POST而不是GET?我已经尝试了谷歌的一些例子,但它们很粗略,正如我所说,它们没有用。我知道,我们在这里都是jQuery坚果。

我使用以下代码尝试查找可通过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>

3 个答案:

答案 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。