webentwicklung-frage-antwort-db.com.de

Daten mit Jquery Ajax übergeben

Ich bekomme immer die Fehlermeldung, und ich kann nicht herausfinden, was falsch ist. Ich versuche nur, die Zeichenfolge ("testexpression") wiederzugeben, die ich sende. Es muss etwas mit dem Datenteil sein, denn ohne Parameter funktioniert es.

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 das 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 ist Post, ich habe es gerade mit get ausprobiert und habe es gelassen)

12
Tyler Durden

Sie müssen Daten als String/Json senden. Sie senden ein Javascript-Objekt. Die URL muss möglicherweise auch eine absolute URL und keine relative URL sein

$("#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');
    }
})
16
Dennis Flagg

Am hinteren Ende empfehle ich

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

Angenommen, Sie möchten einen tatsächlichen JSON-Code zurückschicken und nicht nur einen beliebigen String.

0
beautifulcoder