Pregunta

¿Hay una manera fácil de hacer que JSONP funcione para los nuevos servicios de descanso de la API web de WCF?

He intentado esto sin suerte

<standardEndpoints>
  <webHttpEndpoint>
    <standardEndpoint name=""
                      helpEnabled="true"
                      automaticFormatSelectionEnabled="true"
                      defaultOutgoingResponseFormat ="Json"
                      crossDomainScriptAccessEnabled="true"/>
  </webHttpEndpoint>
</standardEndpoints>
¿Fue útil?

Solución

https://alexanderzeitler.com/articles/look-ma,-i-can-handle-jsonp-%28aka-cross-domain-json%29-with-wcf-web-api-and-jquery!/

ACTUALIZACIÓN: Último WCF Web API BITS se envía con soporte de JSONP integrado, mientras que el uso es casi similar a la forma descrita en el enlace anterior.

Otros consejos

Puede revisar el Siguiendo la publicación del blog para usar JSONP con WCF en .NET 4.0.

Solo quería proporcionar más detalles sobre el soporte de WCF WebAPI listo para usar para JSONP. Me costó mucho encontrar esta información, así que tal vez ayudará a alguien más ...

Este hilo En el WCF CodePlex tiene una descripción de Daniel Roth sobre cómo usar WebAPI Cross-Dominio JSON Consultas (también conocido como JSONP) usando jQuery.

La "muestra" que hace referencia se puede encontrar en el repositorio de codePlex WCF aquí. Está en la carpeta "predeterminada".

Además, asegúrese de instalar WebApienHancements para la vista previa 6 usando Nuget, de lo contrario, nada de esto funcionará.

Necesitarás un global.asax.cs con algo como lo siguiente ...

public class Global : System.Web.HttpApplication
{
    protected void Application_Start()
    {
        var config = new WebApiConfiguration() { EnableTestClient = true };
        RouteTable.Routes.MapServiceRoute<HelloWorldApi>("api", config);
    }
}

La otra clave es tener en cuenta una "extensión" en su plantilla de URI ...

[WebGet(UriTemplate="hello{ext}")]

Entonces haces tu llamada jQuery así ...

$.getJSON("/api/hello.jsonp?callback=?", function (data) {
    $("div").html(data);
}); 

Aquí es Otra publicación de blog que describe cómo agregar un JsonpFormatter a un proyecto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top