Форум Академгородка, Новосибирск > AJAX для отправки длинных строк
Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: AJAX для отправки длинных строк
Форум Академгородка, Новосибирск > Компьютеры и сети > Программирование > WEB-программирование
Barthezz
Привет всем. У меня чисто теоретический вопрос. Я использую vbscript + ASP + javascript. Есть страница HTML.
Задача - отправить на сервер большие объёмы информации, не перегружая её (страницу).
Проблема в том, что AJAX не позволит прямо так заслать серверу большую строку, скажем с хитрыми символами. Не то, что GETом, дык и POST меня подводит... Режет пробелы и вообще, работает крайне фигово.
В моём случае это SQL запрос, длинный и с пробелами. Большинство примеров в инете по пользованию аджаксом - получение информации с сервера по простенькому запросу... А если наоборот - ответ почти не нужен, а отправить надо горы материала, ведь он тут неудобен?
Как, в принципе, лучше поступить?
milfoil
Насколько длинный? Проверил на 4 кб. Передаётся нормально, md5 суммы исходного и полученного совпадают. Возможно вы не кодируете исходную строку перед передачей? Лучше всего для этого использовать встроенную функцию encodeURIComponent().
А вообще получать от пользователя sql запрос это не очень хорошая идея. Что если недоброжелатель отправит запрос на удаление таблицы?
Barthezz
SQL генерится на основе данных заполняемой юзером таблицы. Напрямую писать SQL ему прав не дам. За совет спасибо, попробую.
Basilevs
Странный подход к безопасности. Такое впечатление, что вы верите, что кроме вашего клиента на JavaScript послать запрос будет некому.
Barthezz
Правда Ваша. Одумался, написал отправку только нужных параметров. Запросы собираются на серверной стороне. За encodeURI() отдельное спасибо milfoil. Наводка привела куда нужно.
Zebooka
А почему вы не используете какой-нибудь JS фреймворк?
Например, PrototypeJS ?
Barthezz
Таковым было условие задачи. smile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Русская версия IP.Board © 2001-2024 IPS, Inc.