加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ajax – 在WCF Web Api中设置默认响应类型

发布时间:2020-12-15 22:53:24 所属栏目:百科 来源:网络整理
导读:我有一组托管在WCF Web Api的服务,我通过 javascript用 JSON与它们进行通信.在大多数情况下,我可以修改标头的接受位以要求JSON响应但是在某些情况下我无法做到这一点.这是由于我正在使用的javascript框架(Ext JS).对于某些事情,它只允许我指定一个URL而不是
我有一组托管在WCF Web Api的服务,我通过 javascript用 JSON与它们进行通信.在大多数情况下,我可以修改标头的接受位以要求JSON响应但是在某些情况下我无法做到这一点.这是由于我正在使用的javascript框架(Ext JS).对于某些事情,它只允许我指定一个URL而不是代理默认值,如标题.

但这不是Ext JS的问题. Web Api似乎默认返回XML,我想知道是否可以更改此默认值以便它可以返回JSON.提前致谢!

解决方法

一些实验似乎表明配置的格式化程序的顺序很重要(这非常直观).

默认情况下,当您创建HttpConfiguration的实例时,其Formatters集合包含以下格式化程序:

> XmlMediaTypeFormatter
> JsonValueMediaTypeFormatter
> JsonMediaTypeFormatter
> FormUrlEncodedMediaTypeFormatter

XML是默认格式的原因是因为它是第一个格式化程序.要使JSON成为默认值,您可以将集合重新排序为如下所示:

> JsonValueMediaTypeFormatter
> JsonMediaTypeFormatter
> XmlMediaTypeFormatter
> FormUrlEncodedMediaTypeFormatter

给定HttpConfiguration的实例配置,这是重新排序集合的一种方法:

var jsonIndex = Math.Max(
    config.Formatters.IndexOf(config.Formatters.JsonFormatter),config.Formatters.IndexOf(config.Formatters.JsonValueFormatter));
var xmlIndex = config.Formatters.IndexOf(
    config.Formatters.XmlFormatter);

config.Formatters.Insert(jsonIndex + 1,config.Formatters.XmlFormatter);
config.Formatters.RemoveAt(xmlIndex);

是否支持我不知道,但它似乎在WebApi 0.6.0上工作.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读