Barthezz
18.10.2009, 9:03
Привет всем. У меня чисто теоретический вопрос. Я использую vbscript + ASP + javascript. Есть страница HTML.
Задача - отправить на сервер большие объёмы информации, не перегружая её (страницу).
Проблема в том, что AJAX не позволит прямо так заслать серверу большую строку, скажем с хитрыми символами. Не то, что GETом, дык и POST меня подводит... Режет пробелы и вообще, работает крайне фигово.
В моём случае это SQL запрос, длинный и с пробелами. Большинство примеров в инете по пользованию аджаксом - получение информации с сервера по простенькому запросу... А если наоборот - ответ почти не нужен, а отправить надо горы материала, ведь он тут неудобен?
Как, в принципе, лучше поступить?
milfoil
18.10.2009, 14:41
Насколько длинный? Проверил на 4 кб. Передаётся нормально, md5 суммы исходного и полученного совпадают. Возможно вы не кодируете исходную строку перед передачей? Лучше всего для этого использовать встроенную функцию encodeURIComponent().
А вообще получать от пользователя sql запрос это не очень хорошая идея. Что если недоброжелатель отправит запрос на удаление таблицы?
Barthezz
18.10.2009, 15:50
SQL генерится на основе данных заполняемой юзером таблицы. Напрямую писать SQL ему прав не дам. За совет спасибо, попробую.
Basilevs
19.10.2009, 10:55
Странный подход к безопасности. Такое впечатление, что вы верите, что кроме вашего клиента на JavaScript послать запрос будет некому.
Barthezz
20.10.2009, 8:06
Правда Ваша. Одумался, написал отправку только нужных параметров. Запросы собираются на серверной стороне. За encodeURI() отдельное спасибо milfoil. Наводка привела куда нужно.
Zebooka
22.10.2009, 21:43
А почему вы не используете какой-нибудь JS фреймворк?
Например, PrototypeJS ?
Barthezz
23.10.2009, 8:51
Таковым было условие задачи.
Для просмотра полной версии этой страницы, пожалуйста,
пройдите по ссылке.