为什么JsonResult会产生500个内部服务器错误?
问题描述:
我想从我的Microsoft SQL Server数据库检索一个值。这是一个可空的“位”。为什么JsonResult会产生500个内部服务器错误?
的代码来检索
[HttpGet]
public JsonResult WishesVisit()
{
int firmaid = SessionExtensions.GetFirmaId(Session);
var firma = db.Firma.Where(x => x.firma_id == firmaid).FirstOrDefault();
if (firma != null)
{
if (firma.oensker_besog != null)
{
if ((bool)firma.oensker_besog)
{
return Json("true");
}
else
{
return Json("false");
}
}
}
return Json("null");
}
和代码检索:
$.getJSON('WishesVisit', function (data) {
alert(data);
});
为什么我得到一个500内部服务器错误?
调试器没有发现任何异常。
答
问题很可能是因为ASP.NET MVC默认情况下不允许使用GET的JSON请求。您可以作为第二个参数添加到JsonRequestBehavior.AllowGet
您的JSON电话:
return Json("true", JsonRequestBehavior.AllowGet);
如果没有,你可以提供一个错误信息?
你是对的:) – Kenci 2012-02-01 07:52:00
谢谢。任何想法为什么ASP.NET MVC不允许JSON请求。 – 2015-12-23 14:57:57
@eranotzap MVC保护您免受被称为[JSON劫持](http://haacked.com/archive/2009/06/25/json-hijacking.aspx/)的攻击,其中您可能会暴露敏感数据(如果GET请求返回一个JSON数组。 – OneManBand 2016-06-03 15:14:30