2012-01-31 18 views
5

मैं अपने Microsoft SQL सर्वर डेटाबेस से एक मूल्य पुनर्प्राप्त करने का प्रयास कर रहा हूं। यह एक शून्य "बिट" है।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

समस्या सबसे अधिक संभावना है क्योंकि एएसपी.नेट एमवीसी जेएसओएन अनुरोध डिफ़ॉल्ट रूप से जीईटी का उपयोग करने की अनुमति नहीं देता है। आप अपने Json कॉल करने के लिए एक दूसरे पैरामीटर के रूप में JsonRequestBehavior.AllowGet जोड़ सकते हैं:

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

यदि नहीं, तो आप एक त्रुटि संदेश प्रदान कर सकते हैं?

+0

आप सही थे :) – Kenci

+0

धन्यवाद। कोई विचार क्यों एएसपी.नेट एमवीसी जेएसओएन अनुरोधों की अनुमति नहीं देता है। –

+0

@eranotzap एमवीसी आपको [JSON अपहरण] के रूप में जाना जाने वाला शोषण से बचा रहा है (http://haacked.com/archive/2009/06/25/json-hijacking.aspx/) जिसमें जीईटी होने पर संभावित रूप से संवेदनशील डेटा का पर्दाफाश हो सकता है अनुरोध एक JSON सरणी देता है। – OneManBand

संबंधित मुद्दे