Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 29.11.2011, 17:08
Новичок на форуме
Отправить личное сообщение для didalek Посмотреть профиль Найти все сообщения от didalek
 
Регистрация: 29.11.2011
Сообщений: 9

Как передать символ левой угловой скобки в Ajax POST ?
Начал пользовать аякс, и наткнулся на такую проблему. Серверу от пользователя передается произвольный текст, в котором могут встречаться любые символы.
Я кодирую строку с encodeURIComponent(). Но такая неожиданность - кодированная строка типа "a<b" приводит к AJAX error.
При этом все нормально для "<>" или "a < b" и подобных. Кто-нибудь знает как решить такую проблему ?

var newData = "Field=" + encodeURIComponent("a<b");
alert(newData);
$.ajax({ type: "POST",
url: urlStr,
data: newData,
dataType: "text",
success: function (result) {
alert(result);
},
error: function (request, status, errorHtml) {
alert(status);
}
});
Ответить с цитированием
  #2 (permalink)  
Старый 29.11.2011, 18:05
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

он сам энкодит. странно.. попробуйте сами заменить этот символ на html-сущность (&344; например) и передавать её в таком виде.
Ответить с цитированием
  #3 (permalink)  
Старый 29.11.2011, 18:25
Новичок на форуме
Отправить личное сообщение для didalek Посмотреть профиль Найти все сообщения от didalek
 
Регистрация: 29.11.2011
Сообщений: 9

Всё равно error
Ответить с цитированием
  #4 (permalink)  
Старый 29.11.2011, 18:32
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

didalek, а какой браузер?
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #5 (permalink)  
Старый 29.11.2011, 19:00
Новичок на форуме
Отправить личное сообщение для didalek Посмотреть профиль Найти все сообщения от didalek
 
Регистрация: 29.11.2011
Сообщений: 9

да во всех браузерах одинаково:
IE 7, IE 8, FF7, хром 15
Ответить с цитированием
  #6 (permalink)  
Старый 29.11.2011, 19:24
Аватар для trikadin
Модератор
Отправить личное сообщение для trikadin Посмотреть профиль Найти все сообщения от trikadin
 
Регистрация: 27.04.2010
Сообщений: 3,417

didalek, костыль:

Заменяем на клиентской и на серверной стороне скобки.

Постараюсь придумать что-то получше.
__________________
Читайте:
Ты любопытный) Всё-таки, ничему в этом мире не помешает хорошая доля юмора)
Как спросить, чтобы вам ответили
Часто Задаваемые Вопросы (FAQ)
Ответить с цитированием
  #7 (permalink)  
Старый 29.11.2011, 19:30
Аватар для B@rmaley.e><e
⊞ Развернуть
Отправить личное сообщение для B@rmaley.e><e Посмотреть профиль Найти все сообщения от B@rmaley.e><e
 
Регистрация: 11.01.2010
Сообщений: 1,810

$.ajax({
  type: "POST",
  url: urlStr,
  data: {Field: 'a<b'},
  dataType: "text",
  success: function (result) {
    alert(result);
  },
  error: function (request, status, errorHtml) {
    alert(status);
  }
});
Быть не может, чтобы оно не работало. Если по-прежнему не работает, ищите проблему в другом месте.
Ответить с цитированием
  #8 (permalink)  
Старый 29.11.2011, 19:37
Новичок на форуме
Отправить личное сообщение для didalek Посмотреть профиль Найти все сообщения от didalek
 
Регистрация: 29.11.2011
Сообщений: 9

Сообщение от trikadin Посмотреть сообщение
didalek, костыль:

Заменяем на клиентской и на серверной стороне скобки.
Понятно, что можно придумать свою спецпоследовательность (да хотя бы те же "&lt;") которую сервер будет "вручную" декодировать. Но это как-то неуклюже. Да и просто уже интересно почему именно такая строка вызывает ошибку. кодированное "<" воспринимается как начало HTML тэга ? (строки "2<3" проходят на "ура") ?
Ответить с цитированием
  #9 (permalink)  
Старый 29.11.2011, 19:44
Новичок на форуме
Отправить личное сообщение для didalek Посмотреть профиль Найти все сообщения от didalek
 
Регистрация: 29.11.2011
Сообщений: 9

Сообщение от B@rmaley.e><e Посмотреть сообщение
[JS]$.ajax({
Быть не может, чтобы оно не работало. Если по-прежнему не работает, ищите проблему в другом месте.
Джейсона я пробовал изначально. результат один и тот же. До сервера не доходит, всё заканчивается в callback'е error...
Ответить с цитированием
  #10 (permalink)  
Старый 29.11.2011, 20:13
sinistral
Посмотреть профиль Найти все сообщения от melky
 
Регистрация: 28.03.2011
Сообщений: 5,418

код ошибки какой ?
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery Ajax Rater Plugin и массив POST - Нужна помощь TROODON jQuery 12 30.12.2009 22:44
Как в ajax запросе передать файл методом POST mcpro jQuery 1 16.12.2009 11:41
Как передать массив из PHP в js (AJAX) Александр Иванов Общие вопросы Javascript 7 10.09.2009 10:22
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20
Объясните как вызывается ajax скрипт AddressBook из формы prog90 AJAX и COMET 3 06.06.2009 16:12