URL-codierte Daten mit $http ohne jQuery posten
Als AngularJS-Neuling suchen Sie nach einer Möglichkeit, AJAX-Anfragen ohne zu stellen Verlassen Sie sich auf jQuery. Während Ihr erster Ansatz mit $.param funktioniert hat, möchten Sie die jQuery-Abhängigkeit beseitigen.
Ihre nachfolgenden Versuche mit Daten und Parametern führten nicht zu den gewünschten Ergebnissen, und auch die JSON-Stringifizierung erwies sich als erfolglos. AngularJS bietet dafür sicherlich eine Methode, also lassen Sie uns die Lösung erkunden.
Daten für URL-Parameter transformieren
Der Schlüssel zum Senden von Formulardaten per POST liegt in der Transformation Ihres Objekts Daten in URL-Parameter. AngularJS bietet eine transformRequest-Funktion, mit der Sie den Anfragetext vor dem Senden anpassen können.
Beispiel-Post-Anfrage mit Transformation
$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 () {});
In diesem Beispiel:
AngularJS 1.4 und höher
Mit AngularJS 1.4 und höher Um diesen Prozess weiter zu vereinfachen, wurden neue Dienste eingeführt. Der obige Ansatz bleibt jedoch eine gültige Lösung für frühere Versionen.
Das obige ist der detaillierte Inhalt vonWie poste ich URL-codierte Daten in AngularJS ohne jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!