Post JSON-string zum WEB-API

Ich habe eine ASP.NET WEB-API 2 app-Hexe braucht, um eine POST Methode akzeptiert eine JOSN string mit unbekannter Struktur von javascript.

Ich konnte cors und GET Methoden funktioniert einwandfrei, jedoch beim senden JSON von der client-api-Methode parameter ist immer null.

Dies ist mein api Methode:

//parameters i tried:
//[FromBody]string model
//[FromBody]dynamic model
//dynamic model
public HttpResponseMessage Post(string model)
{
    return new HttpResponseMessage()
    {
        Content = new StringContent("POST: Test message: " + model)
    };
}

und meine client-Methode:

function sendRequest()
{
    var Test = {"Name":"some name"};
    var method = $('#method').val();

    $.ajax({
        type: method,
        url: serviceUrl,
        contentType: 'application/json; charset=utf-8',
        data: JSON.stringify(Test)               
    }).done(function (data)
    {
        $('#value1').text(data);
    }).error(function (jqXHR, textStatus, errorThrown)
    {
        $('#value1').text(jqXHR.responseText || textStatus);
    });
}

Also die Frage ist, wie kann ich eine unbekannte JSON string aus javascript und akzeptieren es wie ein string in meiner api Methode?

  • versuchen data: {model :JSON.stringify(Test)}
  • das gibt mir ein Response to preflight request doesn't pass access control check: No 'Access-Control-Allow-Origin' header is present on the requested resource Fehlermeldung
  • Nicht JSON.stringify. Verwendung von Daten: {value: Test} und in Ihrer Steuerung ([FromBody]string-Test). Das sollte einen string zurückgeben.
  • Nicht verwenden, JOSN contentType. Nur nach einem string mit json-format, dann verwenden Sie JsonConvert.DeserializeObject zu konvertieren, um Ihre erwartete Objekt.
  • habe versucht, aber ich bekomme immer noch einen null-Wert
  • habe versucht, aber ich bekomme immer noch einen null-Wert
  • überprüfen Sie meine Antwort unten

InformationsquelleAutor Yoav | 2016-04-12
Schreibe einen Kommentar