Dieser Code erstellt eine Endlosschleife:
$scope.signup = function() {
$http({
method: 'POST',
data: $.param($scope.formData),
url: '/api/signup',
headers: {'Content-Type': 'application/x-www-form-urlencoded'}
})
.success(function(data) {
console.log(data);
})
}
HTML-Formular:
<div data-ng-controller="signup">
<form id="signup-form" name="singup-form" method="post" data-ng-submit="signup()" novalidate>
<div class="form-group">
<label>Email</label>
<input class="form-control" type="email" name="email" placeholder="Your email" data-ng-model="formData.email">
</div>
<div class="form-group p-tb-20">
<button type="submit" class="btn btn-success">Signup</button>
</div>
</form>
</div>
Das Problem entsteht, wenn ich $.param($scope.formData)
nennen. Wenn ich das Objekt $scope.formData
inspiziere, bemerkte ich, dass es zirkuläre Referenzen auf sich selbst enthält und die Modelle innerhalb des formData
-Objekts Referenzen auf die Objekte innerhalb des Controllers und wiederum selbst enthalten. Die Funktion läuft also in einer Endlosschleife.
Alles was ich versuche ist ein Formular zu senden. Was mache ich falsch?
Sie sollten Daten in Anfrage Körper direkt wie 'Daten: $ scope.formData,', warum Sie $ .Params dort? –
Weil ich möchte, dass die Daten als POST-Anfrage gesendet werden und nicht innerhalb des Hauptteils der Anfrage. – Lev
also dann 'params' trotz' data' Option verwenden .. Technisch sollte es vom Anfragetext übergeben werden. –