ASP.NET + Azure 400错误请求不会返回JSON数据
问题描述:
当我的ASP.NET MVC控制器有一个操作会返回带有400错误请求的JSON数据,当无效参数传递给操作时。ASP.NET + Azure 400错误请求不会返回JSON数据
[HttpDelete]
public ActionResult RemoveObject(string id) {
if(!Validate(id)) {
Response.StatusCode = (int)HttpStatusCode.BadRequest;
return Json(new { message = "Failed", description = "More details of failure" });
}
}
这工作完全在IIS下或从Visual Studio推出的开发测试服务器上运行。将项目部署到Azure后,400 Bad Request会返回而不带有JSON数据。内容类型已更改为“text/html”和“错误请求”。
为什么Azure下的行为不同?
答
将以下条目添加到“web.config”中。
<system.webServer>
<httpErrors existingResponse="PassThrough"/>
</system.webServer>
这将允许HTTP错误通过un-molested。
是否有任何安全问题关联到启用? – 2013-08-19 13:48:47
亲爱的神。我只花了最近12个小时试图弄清为什么我的AJAX请求不起作用。我尝试了一切,从添加CORS支持到在我的Express.js应用中调整代理设置。这是确保JSON得到正确返回的简单解决方案。 – 2014-02-27 02:25:02
我在运行IIS 8的Amazon AWS实例上遇到同样的问题。这解决了我遇到的问题,并且正在驱动我疯狂。 – mcdrummerman 2015-06-09 06:31:21