![]() |
Модераторы: Sardar, Aliance |
![]() ![]() ![]() |
|
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
Всем привет.
Имею следующую проблему: есть текстовое поле <textarea name="textA" id="textA" rows="3" cols="45"></textarea> Пишу в это поле текст "1пробел1" - т.е. пробел при отсылке конвертируется в %20. после нажатия на кнопку submit, данные с "textA" пытаюсь отправить через ajax следующим образом:
После чего выдает ошибку в консоли ошибок: Ошибка: XML tag name mismatch (expected hr) Источник: http://site/ Строка 222, символ 2 Исходный код: </body> На локальном компе все нормально работает, а выкладываю на сервер, выдает такую ошибку. В чем может быть проблема? Это сообщение отредактировал(а) bazzjr - 11.5.2010, 12:11 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
по какому адресу находится страница? по какому идёт аякс-запрос?
точно ли доменные имена соблюдены? он будет косячить даже если страница по адресу www. , а запрос нет |
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
Забыл сказать...
Если посылать данные в форме вида "111222333", т.е. без пробела, то все хорошо, все работает. Стоит указать пробел (%20) и вылазит эта ошибка. Насчет других символов не знаю, не тестировал пока... Что за хз не понимаю... |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
кодируйте входящие переменные:
правда, вы как-то странно делаете, у вас в somevar - кусок пути ( path1/path2/path3 ) или строка поиска ( ?param=value¶m2=value2 ) ? |
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
Все правильно, кусок строки с переменными, только эта строка потом обрабатывается modRewrite.
bars80080 а как на твой взгляд лучше сделать? Проверил... не катит "encodeURIComponent" :( все таже самая ошибка... Более того, если написать в текстовом поле 1%201 (1пробел1), то все нормально, строка обрабатывается, т.е. на выходе мы получаем "1%25201" Это сообщение отредактировал(а) bazzjr - 11.5.2010, 15:23 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
да я вообще без понятия, как можно было создавать пути с пробелами. традиционно все стараются их избегать от греха подальше
ну, в таком случае попробуй два раза пропустить через encodeURIComponent. вообще, любая задача решается отладкой, то есть тупо смотрим что за значения переменных получаются. особенно в этом случае, когда ручками получается, а программно нет. надо просто добиться создания аналогичного текста |
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
Вообщем пока проблему так и не решил.
Если пропускаешь 2-3 раза через encodeURIComponent, то вроде записываются данные в базу, но все равно не те, записываются мнемоники. Вот подскажите как сделать лучше: У меня есть база данных MySql текстовое поле(textarea) и modrewrite. Мне нужно через axaj(тот что писал выше) закинуть в базу текст с текстового поля, при это все данные обрабатываются modrewrite и правилом - - RewriteRule ^somepath/([0-9]+)/([0-9a-z]{30,35})/(.*)$ somefile.php?id_post=$1&check=$2&message=$3 [L] $message и есть самое слабое место сейчас... Т.е. мессагу я передаю прямо в заголовке($message=textarea). может нужно подавать данные через <form>(я подавал напрямую через document.getElementById('textA').value) или еще какие варианты есть??? подскажите как у вас реализованы отправки сообщений через ajax. |
|||
|
||||
ksnk |
|
|||
![]() прохожий ![]() ![]() ![]() ![]() Профиль Группа: Комодератор Сообщений: 6855 Регистрация: 13.4.2007 Где: СПб Репутация: 84 Всего: 386 |
bazzjr, Post'ом передаешь данные, а собственно сообщение укладываешь в get? Ай маладец... А у нас все через... get...
![]() передавай данные этим самым постом, он для этого и придуман.
-------------------- Человеку свойственно ошибаться, программисту свойственно ошибаться профессионально ! ![]() |
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
Побившись головой Ап стену(
![]()
Она работает! Но появились некоторые другие проблемы, в частности если в текстовое поле вводишь текст с пробелами более 250 символов, то 0(нулевая) ошибка ajaxa, а если 500 символов, то вообще ошибка 400 bad request. Если ввести в поле например 500 любых символов без пробела, то все нормально. Может кто сталкивался и знает решение проблемы? Это сообщение отредактировал(а) bazzjr - 13.5.2010, 08:55 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
у тебя каждый пробел превращается в 5 символов, 500*5 = 2500, а два килобайта с гаком - это максимум что ждут от url запроса. в некоторых системах существуют ограничения по этому поводу
имхо |
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
П П Ц! а как же быть??? ну ведь как то другие отправляют такие вот ajax textarea...
Ну самый приходящий на ум пример - google переводчик... там же можно вводить много символов! Это сообщение отредактировал(а) bazzjr - 13.5.2010, 15:15 |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
дык они отправляют данные через пост. там сколько угодно можно передать
сейчас да. раньше в варианте http://www.google.ru/language_tools?hl=ru отправка шла обычной формой методом get. там длина текста была ограничена. теперь сделали, как и в аякс-варианте post, тут уже неограничено |
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
подожди, а моя конструкция что, не отправляет через POST?
Все таки я пока не знаю решение проблемы. Единственное что я могу сделать на данный момент, это ограничить символы в textarea до GET формата. |
|||
|
||||
bars80080 |
|
|||
![]() прапор творюет ![]() ![]() ![]() ![]() Награды: 1 Профиль Группа: Завсегдатай Сообщений: 12022 Регистрация: 5.12.2007 Где: Königsberg Репутация: 15 Всего: 315 |
твоя конструкция отправляет post. но никаких данных в теле пост запроса нет.
ksnk, показывал, как они добавляются: request.send('данные'); а в твоём случае данные добавляются к урлу, что по сути и есть get-запрос. обычно пользуются чем-то одним, хотя и так без экстрима бы работало. в данном случае, экстрим - очень длинная строка, а также не латинские символы в урле. которые теоретически можно наладить, чтоб работало, но практически никто этим не занимается. философия тут такая:
|
|||
|
||||
bazzjr |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 460 Регистрация: 27.12.2007 Где: Россия, Пермь Репутация: нет Всего: 6 |
bars80080, ksnk, большое спасибо!
Вы были правы, насчет post данных и насчет бесполезности modrewrite. Я все сделал как сказал bars80080, теперь все работает, только все равно не хочет передовать более 1100 символов(методом post-наверно ограничения сервера). Тем не менее в свою копилку я положу еще +1 очко опыта ![]() |
|||
|
||||
![]() ![]() ![]() |
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |