2012-01-31 2 views
5

Я пытаюсь получить значение из базы данных 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?

Отладчик не вызывает никаких исключений.

ответ

16

Проблема, скорее всего, из-за того, что ASP.NET MVC не разрешает запросы JSON с использованием GET по умолчанию. Вы можете добавить JsonRequestBehavior.AllowGet в качестве второго параметра на ваш призыв Json:

return Json("true", JsonRequestBehavior.AllowGet); 

Если нет, то вы можете предоставить сообщение об ошибке?

+0

Вы были правы :) – Kenci

+0

спасибо. Любая идея, почему ASP.NET MVC не разрешает запросы JSON. –

+0

@eranotzap MVC защищает вас от эксплойта, известного как [JSON Hijacking] (http://haacked.com/archive/2009/06/25/json-hijacking.aspx/), в котором вы можете потенциально подвергать конфиденциальные данные, если GET запрос возвращает массив JSON. – OneManBand

Смежные вопросы