AJAX браузер-зависимый лимит на длину отправляемых данных? (Sajax) - PullRequest
0 голосов
/ 26 января 2009

РЕДАКТИРОВАТЬ: теперь возникает вопрос, как я могу сказать Sajax использовать POST вместо GET? Я попробовал несколько примеров из Google, но они отрывочны, и, как я уже сказал, они не сработали. Я знаю, что все мы здесь безумны.

Я использовал следующий код, чтобы попытаться найти ограничение на объем данных, которые могут быть отправлены на сервер с помощью вызова 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 ]

1 голос
/ 27 января 2009

GET ограничен в IE до 2083 символов см. http://support.microsoft.com/kb/208427

См. здесь для длины URL для обсуждения.

1 голос
/ 27 января 2009

Я вижу это на примерах sajax:

$sajax_request_type = "GET";
sajax_init();
sajax_export("add_line", "refresh");
sajax_handle_client_request();  

Полагаю, вы просто изменили GET на POST.

$sajax_request_type = "POST";
0 голосов
/ 26 января 2009

Если вы используете GET, нет определенного предела. Это зависит как от браузера, который делает запрос, так и от сервера, получающего его.

POST обычно ограничивается сервером - я думаю, что значение по умолчанию для PHP составляет около 5 МБ.

...