Das Problem verstehen
Als neuer AngularJS-Benutzer Beim Senden von Daten an den Server über den $http-Dienst sind Probleme aufgetreten. Insbesondere traten Probleme auf, als Sie versuchten, Daten im URL-codierten Format zu senden.
Die Lösung
Um dieses Problem zu beheben, müssen Sie Ihre Daten in URL konvertieren Parameter statt JSON-Strings. Ben Nadel erklärt dies in seinem Blog:
By default, the $http service will transform the outgoing request by serializing the data as JSON and then posting it with the content-type, "application/json". When we want to post the value as a FORM post, we need to change the serialization algorithm and post the data with the content-type, "application/x-www-form-urlencoded".
Beispiel
Hier ist ein Beispiel, das zeigt, wie URL-codierte Formulardaten mit $http:
veröffentlicht werden$http({ method: 'POST', url: url, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, transformRequest: function(obj) { var str = []; for(var p in obj) str.push(encodeURIComponent(p) + "=" + encodeURIComponent(obj[p])); return str.join("&"); }, data: {username: $scope.userName, password: $scope.password} }).then(function () {});
Update für AngularJS v1.4 und Später
Für AngularJS v1.4 und höher können Sie die neuen verfügbaren Dienste nutzen, um das gleiche Ergebnis zu erzielen:
$http({ method: 'POST', url: url, headers: {'Content-Type': 'application/x-www-form-urlencoded'}, transformRequest: $httpParamSerializer });
Das obige ist der detaillierte Inhalt vonWie poste ich URL-codierte Formulardaten mit dem $http-Dienst von AngularJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!