Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кодированные данных в методе send xmlHTTP? / 12 сообщений из 12, страница 1 из 1
04.09.2006, 04:39
    #33961028
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
На форме есть строка ввода
Мне необходимо ввести значение — "+1"

в скрипте передаю данные на сервер



      xmlHttp.open("POST", url, async);
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.send("Value="+escape(Text1.value);

на сервере вместо "+1" получаю "1"
пробовал и без escape — все равно "1"

В чем причина? Наверняка и другие символы не пройдут
Как побороть?
...
Рейтинг: 0 / 0
04.09.2006, 12:55
    #33961859
Alexey Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Аноним, Вы писали:

А>На форме есть строка ввода
А>Мне необходимо ввести значение — "+1"

А>в скрипте передаю данные на сервер


А>
А>      xmlHttp.open("POST", url, async);
А>      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
А>      xmlHttp.send("Value="+escape(Text1.value);
А>

А>на сервере вместо "+1" получаю "1"
А>пробовал и без escape — все равно "1"

А>В чем причина? Наверняка и другие символы не пройдут
А>Как побороть?

Используйте encodeURIComponent()
...
Рейтинг: 0 / 0
04.09.2006, 15:14
    #33962517
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
А>>В чем причина? Наверняка и другие символы не пройдут
А>>Как побороть?

AI>Используйте encodeURIComponent()

Никак не помогло — на сервере вместо нормальных символов абракадабра
...
Рейтинг: 0 / 0
04.09.2006, 15:21
    #33962545
Alexey Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Аноним, Вы писали:

А>Никак не помогло — на сервере вместо нормальных символов абракадабра

Давайте поподробнее! Как конкретно отправляется запрос и как Вы понимаете, что пришло не то?
...
Рейтинг: 0 / 0
04.09.2006, 15:27
    #33962566
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Alexey Ivanov, Вы писали:

AI>Здравствуйте, Аноним, Вы писали:

А>>Никак не помогло — на сервере вместо нормальных символов абракадабра

AI>Давайте поподробнее! Как конкретно отправляется запрос и как Вы понимаете, что пришло не то?




      xmlHttp.open("POST", url, async);
      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
      xmlHttp.send("Value="+escape(Text1.value);


а в вебсервисе получаю данные



  [WebMethod]
  public XmlDocument GetValue(string Value)
  {
    return SP.GetValue(Value);
  }

вот в вебсервисе string получается абракадабра
...
Рейтинг: 0 / 0
04.09.2006, 15:31
    #33962586
Alexey Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Аноним, Вы писали:

А>

А>      xmlHttp.open("POST", url, async);
А>      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
А>      xmlHttp.send("Value="+ escape (Text1.value);
А>

А где encodeURIComponent?


А>а в вебсервисе получаю данные


А>
А>  [WebMethod]
А>  public XmlDocument GetValue(string Value)
А>  {
А>    return  SP .GetValue(Value);
А>  }
А>

А>вот в вебсервисе string получается абракадабра

Что такое SP ? Что-то телепатия у меня сегодня не очень :(
...
Рейтинг: 0 / 0
04.09.2006, 17:12
    #33963006
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Alexey Ivanov, Вы писали:

AI>Здравствуйте, Аноним, Вы писали:

А>>

А>>      xmlHttp.open("POST", url, async);
А>>      xmlHttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded");
А>>      xmlHttp.send("Value="+ escape (Text1.value);
А>>

вместо escape представьте encodeURIComponent
AI>А где encodeURIComponent?


А>>а в вебсервисе получаю данные


А>>
А>>  [WebMethod]
А>>  public XmlDocument GetValue(string Value)
А>>  {
А>>    return  SP .GetValue(Value);
А>>  }
А>>

А>>вот в вебсервисе string получается абракадабра

Тут вам какраз не надо телепать — тут просто идет вызов метода но в него уже предается абракадабра
AI>Что такое SP ? Что-то телепатия у меня сегодня не очень :(
...
Рейтинг: 0 / 0
04.09.2006, 17:19
    #33963057
Alexey Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Аноним, Вы писали:

А>Тут вам какраз не надо телепать — тут просто идет вызов метода но в него уже предается абракадабра

Дык я вот все никак не пойму откуда она берется?! :xz:
Еще совет: "Value=" сначала конкатенировать с значением, а потом уж передавать encodeURIComponent
...
Рейтинг: 0 / 0
04.09.2006, 17:49
    #33963174
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Alexey Ivanov, Вы писали:

AI>Здравствуйте, Аноним, Вы писали:

А>>Тут вам какраз не надо телепать — тут просто идет вызов метода но в него уже предается абракадабра

AI>Дык я вот все никак не пойму откуда она берется?! :xz:
AI>Еще совет: "Value=" сначала конкатенировать с значением, а потом уж передавать encodeURIComponent

по видимому encodeURIComponent кодирует в Unicode , а у меня в настройках страниц и сайта выставлено win-1251
Может тут собака порылась?
...
Рейтинг: 0 / 0
05.09.2006, 11:46
    #33964547
Alexey Ivanov
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
Здравствуйте, Аноним, Вы писали:

А>по видимому encodeURIComponent кодирует в Unicode , а у меня в настройках страниц и сайта выставлено win-1251
А>Может тут собака порылась?

Да нет, это тут непричем. encodeURIComponent просто заменяет спецсимволы в строке на их стандартное представление.
Просто этой функции надо передавать именно все содержимое query, а не часть.
...
Рейтинг: 0 / 0
05.09.2006, 13:21
    #33965005
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
AI>Да нет, это тут непричем. encodeURIComponent просто заменяет спецсимволы в строке на их стандартное представление.
AI>Просто этой функции надо передавать именно все содержимое query, а не часть.

Попытался передеть ей всю строку — веб-сервис не может найти параметр Value и вываливает ошибку
...
Рейтинг: 0 / 0
05.09.2006, 14:02
    #33965158
Аноним
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Кодированные данных в методе send xmlHTTP?
AI>Да нет, это тут непричем. encodeURIComponent просто заменяет спецсимволы в строке на их стандартное представление.
AI>Просто этой функции надо передавать именно все содержимое query, а не часть.

Все решилось — если кодировать encodeURIComponent() то символы приходят в абракадабре на сервер, а если им кодировать цифры и спецсимволы — все ок, для кодирования и передачи символов использую escape()

символы приходят в абракадабре после encodeURIComponent() т.к. он кодирует в Unicode, а у меня и на сервере и на клиенте прописана локализация win1251, поэтому на серверной стороне надо раскодировать эту абракадабру.
Как пока еще не разобрался
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Кодированные данных в методе send xmlHTTP? / 12 сообщений из 12, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]