2013-10-17 19 views
8

Ich bekomme immer die 'Fehler' Warnung, und ich kann nicht herausfinden, was los ist. Ich versuche nur die Zeichenfolge ("Testexpression") zurück zu bekommen, die ich sende. Es muss etwas mit dem Datenteil sein, denn ohne einen Parameter funktioniert es.Übergeben von Daten mit jquery ajax

Hier ist der jquery Teil:

<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> 

Und dies ist der Controller:

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

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

    [HttpPost] 
    public ActionResult Index(string expression) 
    { 

     return Json(expression, JsonRequestBehavior.AllowGet); 

    } 

} 

(Update: der Typ Post, versuchte ich es genauso gut mit raus, und ich ließ es in)

Antwort

12

Sie müssen Daten als String/JSON senden. Sie senden ein Javascript-Objekt. Die URL könnte auch brauchen eine absolute URL und nicht eine relative URL Seite

$("#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

Am hinteren Ende ich

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

sein Vorausgesetzt, dass Sie eine tatsächliche JSON zurückschicken wollen und nicht nur einige zufällige Zeichenfolge.