Поделиться через


Служба 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.

Настройка, сборка и выполнение образца

  1. Убедитесь, что вы выполняете инструкции по настройке единовременной процедуры установки для примеров Windows Communication Foundation.

  2. Создайте решение PostAjaxService.sln, как описано в разделе "Создание примеров Windows Communication Foundation".

  3. http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx Перейдите к (не открывайте PostAjaxClientPage.aspx в браузере из каталога проекта).