2013-10-17 8 views
8

के साथ डेटा पास करना मुझे हमेशा 'त्रुटि' चेतावनी मिलती है, और मैं यह नहीं समझ सकता कि क्या गलत है। मैं बस स्ट्रिंग ("testexpression") वापस पाने की कोशिश कर रहा हूं जो मैं भेजता हूं। इसे डेटा भाग के साथ कुछ होना चाहिए, क्योंकि पैरामीटर के बिना यह काम करता है।jquery AJAX

यहाँ jQuery हिस्सा है:

<script> 

$("#meaning").blur(function() { 

    $.ajax({ 
     type: "POST", 
     url: '/GetMeaning/', 
     data: {"expression" : "testexpression"}, 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: successFunc, 
     error: errorFunc 
    }); 

    function successFunc(data, status) { 
     $("#dictionaryDropDown").html(data); 
    } 

    function errorFunc() { 
     alert('error'); 
    } 
}) 
</script> 

और यह नियंत्रक है:

public class GetMeaningController : Controller 
{ 
    // 
    // GET: /GetMeaning/ 

    [HttpGet] 
    public ActionResult Index() 
    { 
     return View(); 
    } 

    [HttpPost] 
    public ActionResult Index(string expression) 
    { 

     return Json(expression, JsonRequestBehavior.AllowGet); 

    } 

} 

(अद्यतन: प्रकार पोस्ट है, मैं सिर्फ यह पता कोशिश कर रहा था के रूप में अच्छी तरह से मिल के साथ, और मैं इसे छोड़ दिया)

उत्तर

12

आपको डेटा को स्ट्रिंग/जेसन के रूप में भेजने की आवश्यकता है। आप एक जावास्क्रिप्ट ऑब्जेक्ट भेज रहे हैं। इसके अलावा, यूआरएल एक संपूर्ण url और नहीं एक रिश्तेदार यूआरएल

$("#meaning").blur(function() { 

    $.ajax({ 
     type: "POST", 
     url: '/GetMeaning/', 
     data: JSON.stringify({expression: "testexpression"}), 
     contentType: "application/json; charset=utf-8", 
     dataType: "json", 
     success: successFunc, 
     error: errorFunc 
    }); 

    function successFunc(data, status) { 
     $("#dictionaryDropDown").html(data); 
    } 

    function errorFunc() { 
     alert('error'); 
    } 
}) 
0

वापस अंत तरफ मैं

return Json(
    new { this.expression = expression }, 
    JsonRequestBehavior.AllowGet); 

की सिफारिश मान लें कि आप एक वास्तविक JSON वापस भेजना चाहते हैं और सिर्फ कुछ नहीं हो की जरूरत हो सकती यादृच्छिक स्ट्रिंग।