JSON with Padding (AJAX)
此扩展性示例演示如何在 Windows Communication Foundation (WCF) 服务中支持 JSON with Padding (JSONP)。JSONP 是通过在当前文档中生成脚本标记来调用跨域脚本时使用的约定。结果在指定的回调函数中返回。JSONP 基于这样一种思想:诸如 <script src=”http://...” >
这样的标记可以从任何域评估脚本,而这些标记检索的脚本是在可能已定义了其他函数的范围中评估的。
此示例包含以下组件:
- 自定义 MessageEncoder、MessageEncoderFactory 和配置支持。
- 一个 OperationBehaviorAttribute,在服务操作上启用 JSONP。
- 一个具有简单
GetCustomer
方法的服务,该方法以 JSONP 格式返回Customer
对象。 - 一个调用服务并显示结果的客户端。
JsonPEncoder
是 WCF JSON 编码器上的包装编码器。它将大多数调用委托给包装的编码器。WriteMesage
方法已进行了重写,以使用回调方法填充传出消息。JsonBehavior
在服务操作中使用,以对该操作启用 JSONP 编码。容纳回调函数名称的 URI 的查询参数被指定为该行为的 CallBack
属性。
客户端页将脚本块动态添加到网页中。此脚本块调用 JSONP 服务,并显示返回的客户名称和地址。
设置、生成和运行示例
- 按照生成 Windows Communication Foundation 示例中的说明生成解决方案 JSONP.sln。
Send comments about this topic to Microsoft.
© 2007 Microsoft Corporation. All rights reserved.