Pergunta

Eu tenho um serviço web retornar JSON, mas agora eu gostaria de modificá-lo para permitir que os chamadores para especificar uma função de retorno de chamada para o retorno vai de: JSON DATA para specifiedFunction (JSON de dados); A maneira que eu estou retornando JSON agora é apenas retornando uma instância de um objeto e ter .NET fazer a sua magia serialização, se eu mudar para apenas devolver uma cadeia I pode adicionar o nome da função e os suportes em torno dos dados, mas então eu acabar com aspas no retorno, porque a sua seqüência de um e eu não quero aqueles. Então, como posso ir sobre ele?

A razão para isso é que queremos desenvolvedores chamar a nossa API para ser capaz de usar a tag script dinâmico como explicado aqui http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag.html

Foi útil?

Solução

A técnica que você está depois é chamado JSONP (JSON com padding).

Como apoiar JSONP em serviços WCF :

O JsonPEncoder é um codificador de embrulho no codificador WCF JSON. delega a maioria das chamadas para o codificador embrulhado. o métodos WriteMesage ter sido overriden para preencher a mensagem de saída com o método de retorno de chamada. o JsonBehavior é usado no serviço operação para permitir que codifica para JSONP essa operação. O parâmetro de consulta de o URI que contém o callback nome de função é especificado como a propriedade CallBack do comportamento.

Outras dicas

suporte adicional Em WCF 4.0 para JSONP. Você pode usar

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

http: //bendewey.wordpress .com / 2009/11/24 / utilizando-jsonp-com-WCF-and-jquery /

Eu não sei qual a versão do HTML que eles estão usando, mas em todas as versões que eu usei, o atributo src de uma tag script tem que ser um URL. Eles estão de alguma forma usando uma função em vez disso, e eu não vejo isso de trabalho.

Você realmente visto uma obra tag script dinâmico?

Eu sei que é uma discussão antiga, mas parece que todo mundo insiste em mudar o WCF para suportar JSONP quando isso não é claramente o que o cartaz perguntou. E eu postei aqui e forums.asp.net e ninguém teve tempo para responder.

acabei devolvendo-o como um fluxo. Isso faz com que o modo "raw" para ser usado e WCF não vai tocar a resposta. Link: http: / /blogs.msdn.com/b/carlosfigueira/archive/2008/04/17/wcf-raw-programming-model-web.aspx .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top