C # WCF Web API + JSONP
-
25-10-2019 - |
Domanda
C'è un modo semplice per ottenere JSONP lavorare per i nuovi servizi REST API WCF web?
Ho provato questo senza fortuna
<standardEndpoints>
<webHttpEndpoint>
<standardEndpoint name=""
helpEnabled="true"
automaticFormatSelectionEnabled="true"
defaultOutgoingResponseFormat ="Json"
crossDomainScriptAccessEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>
Soluzione
Aggiornamento: Gli ultimi WCF Web bit API fornito con il supporto JSONP integrato mentre l'utilizzo è quasi simile al modo descritto nel link qui sopra.
Altri suggerimenti
E 'possibile checkout la seguente post del blog per l'utilizzo JSONP con WCF in .NET 4.0.
Just voluto fornire maggiori dettagli su WCF WebAPI supporto out-of-the-box per JSONP. Ho avuto un momento davvero difficile trovare queste informazioni, così forse contribuirà a qualcun altro ...
Questo filo sopra il WCF CodePlex ha una descrizione di Daniel Roth su come utilizzare WebAPI query cross-domain JSON (aka JSONP) utilizzando jQuery.
Il "campione", ha riferimenti si possono trovare nella WCF CodePlex repository qui . E 'nella cartella "default".
Inoltre, assicurarsi di installare i WebApiEnhancements per Preview 6 utilizzando NuGet altrimenti niente di tutto questo lavoro sarà.
Avrete bisogno di un Global.asax.cs con qualcosa di simile a ...
public class Global : System.Web.HttpApplication
{
protected void Application_Start()
{
var config = new WebApiConfiguration() { EnableTestClient = true };
RouteTable.Routes.MapServiceRoute<HelloWorldApi>("api", config);
}
}
L'altra chiave è quello di conto per una "estensione" nel vostro template URI ...
[WebGet(UriTemplate="hello{ext}")]
Quindi si effettua la chiamata jQuery come questo ...
$.getJSON("/api/hello.jsonp?callback=?", function (data) {
$("div").html(data);
});
Ecco un altro post blog che descrive come aggiungere un JsonpFormatter
ad un progetto.