2017-05-12 5 views
-1

Ich habe diese einfache Anordnung und ich brauche eine Post-Anforderung an einen Back-End-Controller zu machen, aber jedes Mal, wenn ich ein leeres Array []AngualrJS - Gesuch in leeren

Hier meinen html erhalten:

<div class="input-container" ng-repeat="lang in languages"> 
    <label for="tagName">{{:: 'tagName' | translate }}</label> 
    <input placeholder="{{:: 'tagName' | translate }}" id="tagName" type="text" ng-model="translations[lang]"> 
</div> 

hier meine JS:

$scope.createNewTag = function() { 
    console.log($scope.translations); 
    var data = $scope.translations; 

    var method = 'post'; 
    var url = './tags'; 
    $http.post(url,data);  
}; 

der console.log($scope.translations); Druck: [en:"hello", it:"ciao"] aber wenn ich in Chrome Konsole sehen die Anfrage playload leer ist und in meinem Controller erhalte ich eine n leeres Array.

Was fehlt mir?

+0

Erklären Sie downvote, sonst sind nutzlos –

+0

haben Sie versucht, nur $ scope.translations statt var Daten übergeben? – alphapilgrim

+0

Ja, versucht, aber immer noch leer. Wenn ich fest 'Daten: {my_var: 'Hallo'}' Ich bekomme das Ergebnis in der Steuerung –

Antwort

0

Sie vergaßen, das Versprechen des Postanrufs zu lösen, wenn Sie nicht in der Lage sind, die Antwort zu behandeln.

$http.post('/someUrl', data) 
.then(function(resp){ 
    //success 
}), function(err){ 
    //catch exception 
}); 

https://docs.angularjs.org/api/ng/service/ $ http

leeren Nutzlast In Bezug auf i durch den Code aussehen würde zu überprüfen, ob es irgendwelche http Abfangjäger ist, der die Anforderung bearbeiten, bevor es auslöst, vielleicht geändert Sie den content-type Header dort und Angular kann die Daten nicht mehr serialisieren.

vielleicht könnte Ihnen helfen:

Angularjs $http POST request empty array

EDIT: ich sehe, dass Sie ein Array als Argument vorbei sind, aber $http Spezifikationen besagt, dass es sich um ein Schlüsselwertpaar Objekt sein muss, Versuchen Sie, Ihr Array innerhalb eines Objekts zu verpacken.

var params = { 
    data: $scope.translations 
} 
$http.post('/someUrl', params) 
+0

Ok, aber das Problem ist, dass die Daten nicht gesendet werden, bekomme ich ein leeres Array in meinem PHP-Controller –

+0

wirklich seltsam, eckig serialisieren Sie die Parameter in der Payload selbst, erreicht der Aufruf den Endpunkt? – Karim

+0

Wenn ich Daten fest codiere: {my_var: 'Hallo'} Ich bekomme das Ergebnis in der Steuerung –