AngularJS - Gibt es eine Möglichkeit für $ http.post, Anforderungsparameter anstelle von JSON zu senden?

Ich habe einen alten Code, der eine AJAX POST-Anfrage durchführtPost-Methode von jQuery und sieht ungefähr so ​​aus:

$.post("/foo/bar", requestData,
    function(responseData)
    {
        //do stuff with response
    }

requestData ist nur ein Javascript-Objekt mit einigen grundlegenden String-Eigenschaften.

Ich bin gerade dabei, unsere Produkte auf Angular umzustellen, und ich möchte diesen Aufruf durch $ http.post ersetzen. Ich habe mir folgendes ausgedacht:

$http.post("/foo/bar", requestData).success(
    function(responseData) {
        //do stuff with response
    }
});

Als ich das tat, erhielt ich eine 500-Fehler-Antwort vom Server. Bei der Verwendung von Firebug stellte ich fest, dass der Anfragetext folgendermaßen gesendet wurde:

{"param1":"value1","param2":"value2","param3":"value3"}

Die erfolgreiche jQuery$.post schickt den Körper wie folgt:

param1=value1&param2=value2&param3=value3

Der Endpunkt, den ich erreiche, erwartet Anforderungsparameter und nicht JSON. Also, meine Frage ist, gibt es sowieso zu erzählen$http.post das Javascript-Objekt als Anforderungsparameter anstelle von JSON zu senden? Ja, ich weiß, dass ich die Zeichenfolge selbst aus dem Objekt konstruieren kann, aber ich möchte wissen, ob Angular dafür sofort etwas zur Verfügung stellt.

Antworten auf die Frage(13)

Ihre Antwort auf die Frage