Служба AJAX с использованием HTTP POST
В примере PostAjaxService показано, как использовать Windows Communication Foundation (WCF) для создания службы ASP.NET асинхронной javaScript и XML (AJAX), которая использует HTTP POST. Обращаться к службе AJAX можно с использованием кода JavaScript из клиента на основе веб-браузера. Этот пример основан на примере базовой службы AJAX. Единственное различие между двумя примерами — использование HTTP POST вместо HTTP GET.
Поддержка AJAX в Windows Communication Foundation (WCF) оптимизирована для использования с ASP.NET AJAX с помощью ScriptManager
элемента управления. Пример использования WCF с ASP.NET AJAX см. в примерах Ajax.
Примечание.
Процедура настройки и инструкции по построению для данного образца приведены в конце этого раздела.
Служба в следующем примере — это служба WCF без кода AJAX.
WebInvokeAttribute Если атрибут применяется к операции или WebGetAttribute атрибут не применяется, используется http-команда ПО умолчанию ("POST"). Запросы POST строить тяжелее, чем запросы GET, однако они не кэшируются; запросы POST следует использовать для всех операций, в которых нельзя использовать кэширование.
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
[WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Создайте конечную точку AJAX в службе с помощью WebScriptServiceHostFactory точно так же, как в образце базовой службы AJAX.
В отличие от запросов GET вызывать службы POST из браузера нельзя. Например, переход к ошибке приводит к http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200
ошибке, так как служба POST ожидает n1
отправки и n2
параметров в тексте сообщения в формате JSON, а не в URL-адресе.
Клиентская веб-страница PostAjaxClientPage.aspx содержит код ASP.NET для вызова службы, когда пользователь нажимает одну из кнопок операций на странице. Служба реагирует так же, как и в примере службы BASIC AJAX, с запросом GET.
Настройка, сборка и выполнение образца
Убедитесь, что вы выполняете инструкции по настройке единовременной процедуры установки для примеров Windows Communication Foundation.
Создайте решение PostAjaxService.sln, как описано в разделе "Создание примеров Windows Communication Foundation".
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
Перейдите к (не открывайте PostAjaxClientPage.aspx в браузере из каталога проекта).