Abilitare il supporto a JSONP con WCF 4.0

di Cristian Civera, in Windows Communication Foundation,

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

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi