【问题标题】:What is reponse.d when returning data from a WCF Service with ContentType of "application/json"?从 ContentType 为“application/json”的 WCF 服务返回数据时,reponse.d 是什么?
【发布时间】:2010-12-09 14:40:20
【问题描述】:

我有一个 WCF 服务,它具有 webHttpBinding 并在其端点行为配置中启用了 enableWebScript。

服务的响应看起来像这样

HTTP/1.1 200 正常 日期:格林威治标准时间 2009 年 10 月 23 日星期五 20:09:02 服务器:Microsoft-IIS/6.0 X-AspNet-版本:2.0.50727 缓存控制:私有 内容类型:应用程序/json;字符集=utf-8 内容长度:25

{"d":{"__type":"SOMETYPE", ... }}

它使用 HTTP 1.1,因此有标准的标头。 contentType 设置为 applciation/json 这也是有意义的。在消息正文(JSON 部分)中,所有内容都包含在一个名为“d”的信封中。

那是什么?谁定义了该协议?它是 WCF 特有的吗?

我找不到任何涉及的协议或“应用程序/json”内容类型的定义中定义的内容。

谢谢

【问题讨论】:

    标签: wcf json web-services


    【解决方案1】:

    这是特定于 ASP.NET AJAX 的,是通过将 WebScriptEnablingBehavior(在配置中启用 WebScript)应用到您的端点引起的。输入和输出都需要包装器,并且围绕异常处理添加了特殊行为。

    如果你想要“纯”JSON,你应该删除 WebScriptEnablingBehavior 并只使用WebHttpBehavior(配置中的 webHttp)。然后只需确保在 WebGet/InvokeAttributes 上明确设置 Request/ResponseFormat 属性。

    【讨论】:

      猜你喜欢
      • 2018-10-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-02-09
      相关资源
      最近更新 更多