Servicio AJAX mediante HTTP POST
El ejemplo de PostAjaxService muestra cómo usar Windows Communication Foundation (WCF) a fin de crear un servicio JavaScript y XML (AJAX) que use 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 de servicio AJAX básico; la única diferencia entre los dos ejemplos es el uso de HTTP POST en lugar de HTTP GET.
La compatibilidad con AJAX en Windows Communication Foundation (WCF) está optimizada 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, consulte Ejemplos de AJAX.
Nota
El procedimiento de instalación y las instrucciones de compilación de este ejemplo se encuentran al final de este tema.
El servicio que se muestra 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 usará 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, si va a http://localhost/ServiceModelSamples/service.svc/Add?n1=100&n2=200
se produce un error, ya que el servicio POST espera que los parámetros n1
y n2
se envíen en el cuerpo del mensaje en 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 forma que en el ejemplo de servicio AJAX básico, con la solicitud GET.
Configurar, compilar y ejecutar el ejemplo
Asegúrese de sigue las instrucciones de configuración del Procedimiento de configuración única para los ejemplos de Windows Communication Foundation.
Compile la solución PostAjaxService.sln tal y como se describe en Compilación de los ejemplos de Windows Communication Foundation.
Vaya a
http://localhost/ServiceModelSamples/PostAjaxClientPage.aspx
(no abra PostAjaxClientPage.aspx en el explorador del directorio del proyecto).