Модераторы: Sardar, Aliance
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Отправить 'unsigned char[8]' POST запросом 
V
    Опции темы
Alca
Дата 4.8.2008, 17:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: нет
Всего: 50



(GET - запрос) Есть HTML-страница. В странице ActiveX компонент, 
который читает данные с устройства в буфер (символьный массив):
Код

unsigned char ucText[8] = {235,119,89,85,119,74,189,59};

Необходимо передать содержимое буфера GET запросом на сервер.
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<html lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Идёт аутентификация eToken</title>
    <OBJECT classid=CLSID:12269D2A-947C-4D03-9747-DB699E590501 id=TokenSnapshot></OBJECT>
    <script language="JavaScript" type="text/javascript">
        //-------------------------------------
        //считываем CardId
        function InitToken() {
            var sCardId = TokenSnapshot.sGetCardId(0);
            //...
            document.location.href("http://192.168.1.48/cgi-bin/Test.exe?" + "CardId=" + sCardId.toString());
        }
    </script>
</head>

<body onload="InitToken();">
Идёт аутентификация eToken.....
</body>
</html>

В символьный массив могут входит нечитаемые символы,
т.е. надо передать двоичные данные.
Как правильно поступить? 
Посмотрел как реализовывается передача файлов через РОSТ на РНР. 
тип контента при отправке файла указывается: Content-type: multipart/form-data.
Как передать содержимое буфера?

Это сообщение отредактировал(а) Alca - 7.8.2008, 09:50


--------------------
PM WWW ICQ Skype Jabber   Вверх
InvalidProperty
Дата 13.8.2008, 08:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 356
Регистрация: 31.10.2007
Где: Россия, Казань

Репутация: нет
Всего: 9



Для того, чтобы вообще хоть что-то передать GET или POST запросом, нужно эти данные представить в ввиде криптованой строки, однозначной для передачи. Для этого используется функция encodeURIComponent(). Данная функция также переводит "нечитаемые" символы в escape-последовательности.

Это сообщение отредактировал(а) InvalidProperty - 13.8.2008, 08:08


--------------------
dd if=$0 of=$0 bs=1 count=76 seek=`du -b $0 | awk {'print $1'}` 2>/dev/null
dd if=$0 of=$0 bs=1 count=67 conv=notrunc oflag=append 2>/dev/null
echo $0 >> $0
PM MAIL ICQ Jabber   Вверх
Alca
Дата 13.8.2008, 11:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3993
Регистрация: 14.6.2006

Репутация: нет
Всего: 50



Сделал через POST-запрос:
Код

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN">
<META HTTP-EQUIV=Cache-Control content=no-cache>
<html lang="ru">
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
    <title>Идёт аутентификация eToken</title>
    <OBJECT classid=CLSID:12269D2A-947C-4D03-9747-DB699E590501 id=TokenSnapshot></OBJECT>
    <script language="JavaScript" type="text/javascript">
        //-------------------------------------
        //считываем CardId
        function InitTokenByUrl(sUrl) {
            var sTokenId = TokenSnapshot.sGetCardId(0);
            document.frmTokenId.inpHidden.value    = sTokenId;   //alert("InitToken() >>> " + sTokenId);
            document.frmTokenId.inpHiddenUrl.value = sUrl;
        }
    </script>
</head>
<!------------------------------------------------------------------------------------------------------------------------------------->
<body onload="">
    <!-- Begin frmTokenId -->
    <form name="frmTokenId" action="http://serg/cgi-bin/Test/" enctype="multipart/form-data" method="POST" target="_self">
        <input name="inpHidden"    type="hidden" value=""><br />
        <input name="inpHiddenUrl" type="hidden" value=""><br />
    </form>
    <!-- End frmTokenId -->
    <script language="JavaScript" type="text/javascript">
        InitTokenByUrl('');
        document.frmTokenId.submit();
    </script>
</body>
<!------------------------------------------------------------------------------------------------------------------------------------->
</html>


Это сообщение отредактировал(а) Alca - 13.8.2008, 11:50


--------------------
PM WWW ICQ Skype Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Форум для вопросов, которые имеются в справочниках, но их поиск вызвал затруднения, или для разработчика требуется совет или просьба отыскать ошибку. Напоминаем: 1) чётко формулируйте вопрос, 2) приведите пример того, что уже сделано, 3) укажите явно, нужен работающий пример или подсказка о том, где найти информацию.
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | JavaScript: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0754 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.