WebAPI返回数据类型解惑 以及怎样解决Extjs无法解析返回的xml
最近开始使用WebAPI,上手很容易,然后有些疑惑 1.WebAPI默认返回什么数据类型,json还是xml?
继续进行如下测试 1.只发送accept:application/json,结果返回了json 2.只发送accept:application/xml,结果返回了xml 3.同时发送accept:application/xml,application/json,结果返回了json 4.同时发送accept:application/json,application/xml,结果返回了json 5.修改优先级同时发送application/xml;q=1.0,application/json;q=0.9,结果返回了xml 由此可以得出结论: WebAPI的返回数据类型是有请求头的accept来决定的,默认返回类型为json 详见下表:
为了使其能正确返回json数据需要进行如下操作: 1.在程序里找到webapiconfig.cn如图: 2.添加如下代码: publicstaticvoidRegister(HttpConfigurationconfig) { config.Routes.MapHttpRoute( name:"DefaultApi",routeTemplate:"api/{controller}/{id}",defaults:new{id=RouteParameter.Optional} ); //Newcode: varjson=config.Formatters.JsonFormatter; json.SerializerSettings.PreserveReferencesHandling= Newtonsoft.Json.PreserveReferencesHandling.Objects; config.Formatters.Remove(config.Formatters.XmlFormatter); }好,在重新调试就不会出现Extjs无法解析什么什么的错误了.唉,这个问题困扰了我一天,总是想办法怎样去重新把数据转换成json,殊不知问题这么容易被解决了随后我会把Extjs+webapi+Mvc4+EFmodel的事例与大家分享,敬请期待 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |