博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
配置WepApi默认支持JSON数据格式的返回
阅读量:7206 次
发布时间:2019-06-29

本文共 926 字,大约阅读时间需要 3 分钟。

    我们在使用MVC 的WepApi时,比如我们有如下方法:

// GET api/Task/5        public Task GetTask(int id)        {            Task task = db.Task.Find(id);            if (task == null)            {                throw new HttpResponseException(Request.CreateResponse(HttpStatusCode.NotFound));            }            return task;        }

    看,此方法返回的是Task实体类型.然后我们在浏览器里直接调用它.如:

    http://localhost:8888/api/Task/GetTask/1

    它返回的数据,在IE和Chrome是不一样的,IE默认直接返回JSON, 而Chrome返回的是XML.

    这是什么道理呢?正常情况下,既然使用了WepApi,我们多数情况要求返回JSON, 这在IE里是正确的,而用Chrome的话就会出错.不是我们想要的.

原因是非IE在请求是带有application/xml而IE不带.

    作为WebApi提供者,同一调用,在不同浏览器返回结果不一致,这是不是应该是框架提供者应该考虑的事情呢?这种把WebApi和IE绑定的小花招挺搞笑的.

那么怎么解决这个问题呢?

    我们直接把XML的解析移除,不要它了.

    在WebApiConfig.cs里增加如下代码:

var appXmlType = config.Formatters.XmlFormatter.SupportedMediaTypes.FirstOrDefault(t => t.MediaType == "application/xml");            config.Formatters.XmlFormatter.SupportedMediaTypes.Remove(appXmlType);

    大功告成,各大浏览器对WepApi支持一致了,都返回Json

转载地址:http://duoum.baihongyu.com/

你可能感兴趣的文章
[数据库]SQL Server 用户NT AUTHORITY\IUSR 登录失败
查看>>
轻松学会多线程(四)——synchronized同步keyword知多少
查看>>
Apache Kylin 部署之不完全指南
查看>>
php中将SimpleXMLElement Object数组转化为普通数组
查看>>
docker学习(7) docker-compose使用示例
查看>>
Android 推断当前Activity是不是最后一个Activity 以及 应用或Activity是否存在
查看>>
【Android】6.3 ProgressDialog
查看>>
设计模式六大原则——迪米特法则(LoD)
查看>>
HtmlAgilityPack 之 HtmlNode类
查看>>
[转]Java Web基础——Action+Service +Dao三层的功能划分
查看>>
ngx.location.capture 只支持相对路径,不能用绝对路径
查看>>
自己在OC考试中的试题
查看>>
向 Git 服务器添加 SSH 公钥
查看>>
Lua学习笔记5:类及继承的实现
查看>>
Vagrant工具
查看>>
如何使用 Android Studio 的 git hub 功能
查看>>
UML应用:业务内涵的分析抽象&表达
查看>>
eclipse菜单解释及中英对照《二》
查看>>
模拟易企秀
查看>>
CDOJ 1401 谭爷的黑暗沙拉 数学
查看>>