Servicio AJAX mediante HTTP POST
Este ejemplo muestra cómo utilizar Windows Communication Foundation (WCF) para crear un servicio JavaScript asincrónico ASP.NET y XML (AJAX) que utiliza HTTP POST. Un servicio AJAX es un servicio al que puede tener acceso utilizando el código JavaScript básico desde un cliente del explorador web. Este ejemplo se basa en el ejemplo Servicio AJAX básico; la única diferencia entre los dos ejemplos es el uso de HTTP POST en lugar de HTTP GET.
La compatibilidad de AJAX en Windows Communication Foundation (WCF) se optimiza para su uso con ASP.NET AJAX a través del control ScriptManager. Para obtener un ejemplo sobre cómo usar WCF con ASP.NET AJAX, vea Ajax Samples.
Nota: |
---|
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema. |
El servicio en el ejemplo siguiente es un servicio WCF sin el código específico de AJAX.
Si se aplica el atributo WebInvokeAttribute en una operación, o no se aplica el atributo WebGetAttribute, se utilizará el verbo HTTP predeterminado ("POST"). Las solicitudes POST son más difíciles de construir que las solicitudes GET, aunque no estén almacenadas en la memoria caché. Use las solicitudes POST para todas las operaciones en las que no sea adecuado almacenar en memoria caché.
[ServiceContract(Namespace = "PostAjaxService")]
public interface ICalculator
{ [WebInvoke]
double Add(double n1, double n2);
//Other operations omitted…
}
Cree un extremo AJAX en el servicio mediante el uso de la clase WebScriptServiceHostFactory, exactamente igual que en el ejemplo de servicio AJAX básico.
A diferencia de las solicitudes GET, no se pueden invocar los servicios POST desde el explorador. Por ejemplo, navegar a https://localhost/ServiceModelSamples/service.svc/Add?n1&n2=200 da como resultado un error, porque el servicio POST espera que se envíen los parámetros n2
y n1
en el cuerpo del mensaje (en el formato JSON) y no en la dirección URL.
La página web del cliente PostAjaxClientPage.aspx contiene el código de ASP.NET para invocar el servicio siempre que el usuario haga clic en uno de los botones de operación de la página. El servicio responde de la misma manera que en el ejemplo Servicio AJAX básico, con la solicitud GET.
Nota: |
---|
Puede que los ejemplos ya estén instalados en su equipo. Compruebe el siguiente directorio (predeterminado) antes de continuar.
<unidadDeInstalación>: \WF_WCF_Samples
Si no existe este directorio, vaya a la página de ejemplos de Windows Communication Foundation (WCF) y Windows Workflow Foundation (WF) Samples para .NET Framework 4 para descargar todos los ejemplos de WF y Windows Communication Foundation (WCF). Este ejemplo se encuentra en el siguiente directorio.
<unidadDeInstalación>:\WF_WCF_Samples\WCF\Basic\Ajax\PostAjaxService
|
Para configurar, compilar y ejecutar el ejemplo
Asegúrese de que lleva a cabo las instrucciones de configuración de Procedimiento de instalación única para los ejemplos de Windows Communication Foundation.
Compile el PostAjaxService.sln de la solución tal y como se describe en Compilación de los ejemplos de Windows Communication Foundation.
Navegue hasta https://localhost/ServiceModelSamples/PostAjaxClientPage.aspx (no abra PostAjaxClientPage.aspx en el explorador del directorio de proyecto).