Domanda

Ho un servizio web JSON ritorno, ma ora mi piacerebbe modificarlo per consentire ai chiamanti di specificare una funzione di callback in modo che il ritorno va da: JSON DATA per specifiedFunction (JSON dati); Il modo in cui sto tornando JSON in questo momento è solo restituendo un'istanza di un oggetto e avendo .NET fare la sua magia serializzazione, se cambio di restituire solo una stringa che può aggiungere il nome della funzione e le parentesi intorno i dati, ma allora io alla fine con le virgolette nel ritorno, perché la sua una stringa e non voglio che quelli. Così come posso fare?

La ragione di questo è che vogliamo sviluppatori chiamando la nostra API per essere in grado di utilizzare il tag script dinamico come spiegato qui http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html

È stato utile?

Soluzione

La tecnica che si sta dopo è chiamato JSONP (JSON con imbottitura).

Come sostenere JSONP in WCF servizi :

  

Il JsonPEncoder è un encoder involucro   sull'encoder WCF JSON. delegati It   la maggior parte delle chiamate al codificatore avvolto. Il   metodi WriteMesage sono stati   sovresposta per riempire il messaggio in uscita   con il metodo di callback. Il   JsonBehavior viene utilizzato sul servizio   operazione per abilitare JSONP codifica   tale operazione. Il parametro di query di   l'URI che contiene il callback   nome della funzione è specificato come   Proprietà CallBack del comportamento.

Altri suggerimenti

In WCF 4.0 aggiunto il supporto per JSONP. È possibile utilizzare

  <bindings>
    <webHttpBinding>
      <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
    </webHttpBinding>
  </bindings>

http: //bendewey.wordpress .com / 2009/11/24 / usando-jsonp-con-WCF-e-jquery /

Non so quale versione di HTML che stanno utilizzando, ma in tutte le versioni che ho utilizzato, l'attributo src in un tag script deve essere un URL. Stanno in qualche modo utilizzando una funzione invece, e io non vedere che di lavoro.

Avete effettivamente visto un'opera tag script dinamica?

Lo so che è un vecchio thread, ma sembra che tutti insiste sulla modifica della WCF per sostenere JSONP quando questo non è chiaramente ciò che il poster ha chiesto. E ho postato qui e forums.asp.net e nessuno ha preso il tempo di rispondere.

Ho finito per tornare come un ruscello. Questo fa sì che il modo "raw" da utilizzare e WCF non toccherà la risposta. Link: http: / /blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top