Line-000001-000013: mailbox=6007 |
Line-000001-000014: hasagent=yes |
Line-000001-000015: group= |
Обновление конфигурационных файлов с помощью UPDATECONFIG
Действие UPDATECONFIG используется для обновления одной или более настроек конфигурационного файла. Например, чтобы удалить пользователя, необходимо выполнить такой HTTP-запрос:
Ответ, свидетельствующий об ошибке
Чтобы формировать все остальные команды, пользователь должен зарегистрироваться на веб-сервере. Если пользователь не аутентифици- рован, любая из обсуждаемых выше команд будет возвращать ошибку. Если он отправлен пользователем, не прошедшим аутентификацию, URI
Message: Authentication Required
Ajax, AJAM и Asterisk
Аббревиатура Ajax расшифровывается как
Обработка форм в традиционном веб-приложении
HTML-формы обычно передаются посредством кнопки SUBMIT (ПЕРЕДАТЬ) (type=submit). После щелчка пользователем по кнопке SUBMIT (ПЕРЕДАТЬ) обработка веб-приложения останавливается и не возобновляется до тех пор, пока сервер не возвратит новую страницу полностью:
<FORM action='login.php' method='POST'> <input type=text name='username'> <input type=password name='password'> <input type=submit> </FORM>
Прежде чем переходить к Ajax или JavaScript, давайте рассмотрим, как работает традиционное веб- приложение. Для описания формы, где определяются все параметры, которые пользователь хочет отправить на сервер, традиционные веб-приложения используют элемент <FORM>. Кроме того, атрибут action='login.php' информирует броузер, куда отправлять все эти переменные. method='POST' указывает броузеру, как отправлять эти переменные на сервер.
Обработка форм в приложении Ajax
Приложение Ajax для отправки содержимого формы на сервер использует JavaScript. Если выполнен асинхронный запрос, JavaScript-код не ожидает ответа сервера. Это также означает, что пользователи могут продолжать работать со страницей даже в том случае, если в фоновом режиме выполняется запрос. Это может представлять опасность, из-за чего, возможно, до завершения запроса потребуется ограничить некоторые действия. Броузер по умолчанию не обеспечивает визуальной индикации выполнения запроса в фоновом режиме. За информирование пользователя о выполнении запроса отвечаете вы. Вот код для передачи содержимого полей имени пользователя (username) и пароля (password) через Ajax:
<script language='javascript' type='text/javascript'> function submitform(){
var uname = document.getElementById('username').value; var pwd = document.getElementById ('password').value; // xmlHttp = new ActiveXObject('Msxml2.XMLHTTP'); // IE 7 // xmlHttp = new ActiveXObject ('Microsoft.XMLHTTP'); // IE 5 xmlHttp = new XMLHttpRequest(); // Mozilla или Firefox
var url = '/rawman9action=login&username=' + escape(uname) + '&secret=' + escape(pwd);
xmlHttp.open('GET', url, true); xmlHttp.onreadystatechange = dosomething; // вместо dosomething использовалась бы функция JavaScript xmlHttp.send(null);
}
</script>
Метод getElementById() читает значения полей имени пользователя и пароля. Затем создается объект XMLHttpRequest, с помощью которого эти значения отправляются назад на сервер. Заметьте, что тип используемого объекта зависит от того, какой броузер применяют пользователи: Internet Explorer 7, 5 или Mozilla/Firefox. Довольно просто написать код, обрабатывающий все эти ситуации, или использовать библиотеку, подобную Prototype, для реализации независимости от платформы. Имя пользователя и пароль кодируются в URL и отправляются на сервер. Вызов xmlHttp.onreadystatechange регистрирует обработчик для обработки результата, возвращаемого сервером. Данный код реализует только запрос XMLHttp и указывает броузеру вызвать функцию dosomething() при получении ответа от сервера. Вот функция dosomething(), которая обрабатывает этот ответ: <script language='javascript' type='text/javascript'> function dosomething() {
if (xmlHttp.readyState == 4) {
var login_response = xmlHttp.responseText;
}
</script>
}
Перед выполнением каждого последующего этапа XMLHttp-за- проса убедитесь в завершении предыдущего (успешном или со сбоем).
Эта функция вызывается при любом изменении состояния HTTP-за- проса. Выражение if сохраняет ответ, только если параметр readyState запроса имеет значение 4, свидетельствующее о завершении запроса. Теперь переменная JavaScript login_response (ответ на регистрацию) содержит ответ страницы регистрации.
Но этот фрагмент мало похож на код, готовый к производственной эксплуатации. В частности, упрощенная обработка имени пользователя и пароля подходит для тестирования, но будет представлять серьезную проблему для безопасности в производственной системе, даже если приложение используется только в закрытой сети. Для реализации более надежной и безопасной обработки паролей рекомендуется применять представленную ранее систему запрос/ответ. Больше информации о написании веб-приложений на Ajax предлагает книга Бретта Мак- Лафлина (Brett McLaughlin) «Head Rush Ajax» (издательство O'Reilly).
Инфраструктура Prototype
Prototype