Обходной путь для слишком длинной строки запроса в IE6, IE7? - PullRequest
4 голосов
/ 23 августа 2010

У меня есть форма, которая отправляет нормально в FF, Opera, Safari, Chrome, а также IE8 ... Но оно не будет отправлено в IE6 или IE7 ...

Я заметил, что на 99% уверен, что проблема в слишком длинной строке запроса. У меня много много вариантов ...

Теперь об изменении метода на POST здесь не может быть и речи, поэтому не стесняйтесь спрашивать об этом, пожалуйста ...

Интересно, есть ли другой способ обойти эту проблему? Кроме того, почему только IE6 и IE7 имеют эту проблему?

Если нет обходного пути, поможет ли «отключение» «слишком большого» количества входов, превышающих лимит, сократить строку запроса? Другими словами, будут ли добавлены отключенные элементы формы в строку запроса?

Спасибо

Ответы [ 6 ]

2 голосов
/ 23 августа 2010

Чтобы ответить на ваш второй вопрос, Microsoft получила ответ здесь: http://support.microsoft.com/kb/208427 Максимальный URL-адрес составляет 2083 символа, поэтому страница, полученная в результате запроса GET, должна иметь URL-адрес короче этого.

Чтобы ответить на ваш третий вопрос, w3.org / TR / HTML401 / взаимодействуют / forms.html # ч-17,12 : «Отключенные элементы управления не могут быть успешными», то есть они не будут отправлены.

Чтобы ответить на первый вопрос, возможно, вы можете установить ограничение на количество символов в некоторых полях, например, в текстовой области. Другим вариантом может быть сжатие ввода с использованием javascript, его хеширование, а затем отключение его на стороне сервера на отправленной странице.

1 голос
/ 23 августа 2010

Если вы уверены, что это проблема, а не миллион других кросс-браузерных проблем, вы можете попробовать вызов ajax.Разделите запрос на 2, 3, n вызовов.

Это просто форма?Могу я спросить, почему POST исключен?

0 голосов
/ 19 июня 2013

Ошибка слишком длинной строки запроса может быть предотвращена простым изменением настроек IIS.http://www.mytecbits.com/microsoft/iis/query-string-too-long

0 голосов
/ 23 августа 2010

Вы также можете попытаться выполнить некоторое сжатие на стороне клиента значений строки запроса в JavaScript.

Я добился определенного успеха, используя шифрование Base 93, чтобы значительно уменьшить размер строки.

Вы также можете попробовать сжатие Хаффмана, хотя оно более загружено процессором.

http://rumkin.com/tools/compression/compress_huff.php

Если вы ожидаете только ограниченного набора символов (строчные буквы a-z), вы можете придумать несколько других трюков.

0 голосов
/ 23 августа 2010

Чтобы ответить на ваш последний вопрос, сначала отключите ввод данных НЕ ПОЛУЧЕНО или ОТПРАВЛЕНО обратно на сервер

Если публикация не возможна, вы можете попытаться исключить несущественные входные данные формы, и, хотя это будет глупо, сокращение длины ИМЯ ваших элементов также сократит строку запроса.

0 голосов
/ 23 августа 2010

это не здорово, но вы можете поместить значение (я) в файл cookie

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...