Windows Communication Foundation è un framework che permette la realizzazione di servizi ed esporli nei più svariati modi. Dalla versione 3.5 del .NET Framework è possibile tra questi anche utilizzare HTTP con semplici chiamate REST e POX facilmente interrogabili da Javascript, soprattutto con tool come jQuery che permettono di leggere JSON e XML facilmente.
Nella versione 4.0 di WCF è stato aggiunto il supporto anche a JSONP (JSON with Padding) che in modo simile a JSON, contiene come guscio della risposta il nome di una funzione Javascript da richiamare. Questo trucco permette a script di altri siti/domini di poter chiamare il servizio grazie al tag SCRIPT, il quale non è sottoposto alle restrizioni di sicurezza che invece xmlHttpRequest ha.
Sebbene può sembrare un bug di sicurezza, JSONP richiede la complicità di chi offre il servizio. In WCF 4.0 per farlo basta agire nel web.config.
<system.serviceModel> <behaviors> <bindings> <webHttpBinding> <binding name="WebApi" crossDomainScriptAccessEnabled="true" /> </webHttpBinding> </bindings> </behaviors> </system.serviceModel>
Impostando a true la proprietà crossDomainScriptAccessEnabled del webHttpBinding si permette di chiamare il servizio indicando con il parametro in querystring, di nome callback, il nome della funzione Javascript con la quale racchiudere la risposta. E' possibile inoltre cambiare il nome del parametro querystring sfruttando l'attributo JavascriptCallbackBehavior da porre sulla classe del servizio.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Recuperare un elemento inserito nella cache del browser tramite API JavaScript
Generare file per il download da Blazor WebAssembly
Eseguire operazioni con timeout in React
Load test di ASP.NET Core con k6
Utilizzare le Cache API di JavaScript per salvare elementi nella cache del browser
Filtrare e rimuovere gli elementi dalla cache del browser tramite le API JavaScript
Utilizzare la libreria Benchmark.NET per misurare le performance
I più letti di oggi
- PWAConf 2020 - Online
- Effettuare il binding di date in Blazor
- What's new in Azure Functions and Extensions
- Mantenere sempre reattiva una Lambda di AWS
- Proteggersi dagli attacchi di Open Redirect in ASP.NET Core MVC
- Gestire errori funzionali tramite exception in ASP.NET Core Web API
- Sblocca le performance della tua applicazione con .NET 8