Angularjs 如何在web api2中将响应内容类型头设置为Json?
嗨,我正在用angularjs开发一个web api2应用程序。我有一个使用POST方法的登录页面。我想将响应内容类型头设置为Json。我收到的是文本/html格式。我在这里附上了必要的邮递员截图 这是我的控制器代码Angularjs 如何在web api2中将响应内容类型头设置为Json?,angularjs,json,asp.net-mvc-5,asp.net-web-api2,Angularjs,Json,Asp.net Mvc 5,Asp.net Web Api2,嗨,我正在用angularjs开发一个web api2应用程序。我有一个使用POST方法的登录页面。我想将响应内容类型头设置为Json。我收到的是文本/html格式。我在这里附上了必要的邮递员截图 这是我的控制器代码 var response = Request.CreateResponse(HttpStatusCode.OK, obj); var newSessionId = new SessionIDManager().CreateSessio
var response = Request.CreateResponse(HttpStatusCode.OK, obj);
var newSessionId = new SessionIDManager().CreateSessionID(HttpContext.Current);
var cookie = new CookieHeaderValue("session-id", newSessionId);
cookie.Expires = DateTimeOffset.Now.AddDays(1);
cookie.Domain = Request.RequestUri.Host;
cookie.Path = "/";
response.Headers.AddCookies(new[] { cookie });
//response.Headers.Add("Content-type", "text/json");
//response.Headers.Add("Content-type", "application/json");
return ResponseMessage(response);
我可以知道我应该在哪里做必要的更改吗?任何帮助都将不胜感激。谢谢。将
内容类型添加到请求的标题中
将内容类型
添加到请求的标题中
为了确保web api在默认情况下返回json,您可以将连接到WebApiConfig类中HttpConfiguration的格式化程序配置为
//First remove the current formatters
config.Formatters.Clear();
//Then add the json formatter
config.Formatters.Add(new JsonMediaTypeFormatter());
为了确保默认情况下web api返回json,您可以将连接到WebApiConfig类中HttpConfiguration的格式化程序配置为
//First remove the current formatters
config.Formatters.Clear();
//Then add the json formatter
config.Formatters.Add(new JsonMediaTypeFormatter());
非常感谢。我如上所述尝试,但它不起作用。我可以知道我遗漏了什么吗?您是否尝试添加response.ContentType=“application/json”在控制器中没有响应的方法ContentType。我尝试了response.Headers.Add(“Content-type”,“application/json”),当我输入这个时,我得到了500个内部服务器错误。我在webapiconfig文件config.Formatters.JsonFormatter.SupportedMediaTypes.Add(新的MediaTypeHeaderValue(“text/json”);)中有以下代码;。这有什么问题吗?谢谢。我如上所述尝试,但它不起作用。我可以知道我遗漏了什么吗?您是否尝试添加response.ContentType=“application/json”在控制器中没有响应的方法ContentType。我尝试了response.Headers.Add(“Content-type”,“application/json”),当我输入这个时,我得到了500个内部服务器错误。我在webapiconfig文件config.Formatters.JsonFormatter.SupportedMediaTypes.Add(新的MediaTypeHeaderValue(“text/json”);)中有以下代码;。这有什么问题吗?谢谢。但我还是得到了text/html格式。我在上面添加了fidler快照。@niranjangdbole我认为问题可能在于您创建ResponseMessage的方式。尝试创建新的HttpResponseMessage,并将数据附加到该消息,而不是从请求创建它。谢谢。我可以得到一些相关的例子吗?@niranjangodhole var response=new-HttpResponseMessage(HttpStatusCode.OK);。。。。然后做同样的事情…最后:返回响应;Okay var response=新的HttpResponseMessage(HttpStatusCode.OK,obj);这里我不能通过obj。谢谢。但我还是得到了text/html格式。我在上面添加了fidler快照。@niranjangdbole我认为问题可能在于您创建ResponseMessage的方式。尝试创建新的HttpResponseMessage,并将数据附加到该消息,而不是从请求创建它。谢谢。我可以得到一些相关的例子吗?@niranjangodhole var response=new-HttpResponseMessage(HttpStatusCode.OK);。。。。然后做同样的事情…最后:返回响应;Okay var response=新的HttpResponseMessage(HttpStatusCode.OK,obj);在这里我不能通过obj。