Compartilhar via


Serviço AJAX utilizando HTTP POST

O exemplo de PostAjaxService demonstra como usar o WCF (Windows Communication Foundation) para criar um serviço ASP.NET Assíncrono JavaScript e XML (AJAX) que usa HTTP POST. Um serviço AJAX é aquele que você pode acessar usando o código JavaScript básico de um cliente a partir do navegador da Web. Este exemplo se baseia no exemplo do Serviço AJAX básico; a única diferença entre os dois exemplos é o uso de HTTP POST em vez de HTTP GET.

O suporte a AJAX no WCF (Windows Communication Foundation) é otimizado para uso com AJAX do ASP.NET por meio do controle ScriptManager. Para obter um exemplo de como usar o WCF com ASP.NET AJAX, consulte as amostras do Ajax.

Observação

O procedimento de instalação e as instruções de compilação dessa amostra estão no final deste tópico.

O serviço no exemplo a seguir é um serviço WCF sem código específico de AJAX.

Se o atributo WebInvokeAttribute for aplicado em uma operação ou o atributo WebGetAttribute não for aplicado, o verbo HTTP padrão ("POST") será usado. As solicitações POST são mais difíceis de construir do que as solicitações GET, mas não são armazenadas em cache; use solicitações POST para todas as operações em que o cache não é apropriado.

[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{
    [WebInvoke]
    double Add(double n1, double n2);
    //Other operations omitted…
}

Crie um ponto de extremidade de AJAX no serviço usando o WebScriptServiceHostFactory, como no exemplo do Serviço AJAX básico.

Ao contrário das solicitações GET, não é possível invocar serviços POST a partir do navegador. Por exemplo, navegar para http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200 resultará em um erro, porque o serviço POST espera que os parâmetros e n1 os n2 sejam enviados no corpo da mensagem no formato JSON e não na URL.

A página da Web do cliente PostAjaxClientPage.aspx contém código ASP.NET para invocar o serviço sempre que o usuário clicar em um dos botões de operação na página. O serviço responde da mesma forma que no exemplo do Serviço AJAX básico, com a solicitação GET.

Para configurar, compilar, e executar o exemplo

  1. Verifique se você executa as instruções de instalação no Procedimento de Instalação Única para os Exemplos do Windows Communication Foundation.

  2. Crie a solução PostAjaxService.sln conforme descrito na criação de exemplos do Windows Communication Foundation.

  3. Navegue até http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (não abra PostAjaxClientPage.aspx no navegador do diretório do projeto).