从WCF REST Web服务返回包含在回调函数中的JSON

Mic*_*han 5 .net wcf json jsonp callback

我有一个返回JSON的Web服务,但现在我想修改它以允许调用者指定一个回调函数,所以返回从:JSON DATA到specifiedFunction(JSON DATA); 我现在返回JSON的方式就是返回一个对象的实例并让.NET执行其序列化魔术,如果我改为只返回一个字符串我可以添加函数的名称和数据的括号但是然后我在回报中最终得到引号,因为它是一个字符串,我不想要那些.那我该怎么办呢?

原因是我们希望开发人员调用我们的API能够使用动态脚本标记,如http://www.xml.com/pub/a/2005/12/21/json-dynamic-script-tag所述. HTML

Cre*_*esh 5

您所追求的技术称为JSONP(带填充的JSON).

请参见如何在WCF服务中支持JSONP:

JsonPEncoder是WCF JSON编码器上的包装编码器.它将大多数调用委托给包装好的编码器.该 WriteMesage方法已被重写到垫回调方法传出消息.将 JsonBehavior被用在服务操作,以使该操作JSONP编码.保存回调函数名称的URI的查询参数被指定为CallBack行为的 属性.


小智 5

在WCF 4.0中添加了对JSONP的支持.你可以用

  <bindings>
    <webHttpBinding>
      <binding name="webHttpBindingWithJsonP" crossDomainScriptAccessEnabled="true" />
    </webHttpBinding>
  </bindings>
Run Code Online (Sandbox Code Playgroud)

http://bendewey.wordpress.com/2009/11/24/using-jsonp-with-wcf-and-jquery/