一、默认情况下WebApi
对于没有指定请求数据类型类型的请求,返回数据类型为Xml格式
例如:从浏览器直接输入地址,或者默认的XMLRequest,或者AngularJs的get请求等。
对于有循环引用的也会抛出异常““ObjectContent`1”类型未能序列化内容类型“application/xml; charset=utf-8”的响应正文。”
二、设置返回格式为Json数据
1.修改配置,这对所有的接口都生效
找到Global.asax文件,在Application_Start()方法中添加一句:
GlobalConfiguration.Configuration.Formatters.XmlFormatter.SupportedMediaTypes.Clear()
2.针对某一个接口设置
解决的方法是自定义返回类型(返回类型为HttpResponseMessage)
public HttpResponseMessage PostUserName(User user) { String userName = user.userName; HttpResponseMessage result = new HttpResponseMessage { Content = new StringContent(userName,Encoding.GetEncoding("UTF-8"), "application/json") }; return result; }
更多:
Asp.Net WebApi+Microsoft.AspNet.WebApi.Core 启用CORS跨域访问
使Asp.net WebApi支持JSONP和Cors跨域访问
自定义序列化处理:www.cnblogs.com/acles/archive/2013/06/21/3147667.html