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

前端之家收集整理的这篇文章主要介绍了ajax – 在WCF Web Api中设置默认响应类型前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有一组托管在WCF Web Api的服务,我通过 javascriptJSON与它们进行通信.在大多数情况下,我可以修改标头的接受位以要求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上工作.

猜你在找的Ajax相关文章