URL-codierte Formulardaten mit $http in AngularJS VERÖFFENTLICHEN
Bei der Arbeit mit AngularJS stehen Entwickler häufig vor der Aufgabe, AJAX-Aufrufe an Remotestandorte zu tätigen Server. Zum Senden von Parametern wurden verschiedene Ansätze untersucht.
Eine Methode beinhaltet die Verwendung der Funktion $.param() von jQuery. Um die jQuery-Abhängigkeit zu beseitigen, wurden jedoch mehrere andere Optionen in Betracht gezogen, darunter die Übergabe von Daten als Objekt, die Verwendung von Parametern und die Verwendung von JSON.stringify.
Die Lösung liegt in der Umwandlung der ausgehenden Anforderungsdaten von einem Objekt in eine URL Parameter. AngularJS serialisiert Daten standardmäßig als JSON zum Posten. Um als FORM-Beitrag zu posten, muss der Serialisierungsalgorithmus geändert und der Inhaltstyp auf „application/x-www-form-urlencoded“ gesetzt werden.
Der folgende geänderte Code zeigt, wie das geht:
$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 () {});
Weitere Anleitungen finden Sie im Blog von Ben Nadel oder im oben bereitgestellten Beispiel.
Das obige ist der detaillierte Inhalt vonWie poste ich URL-codierte Formulardaten mit $http in AngularJS?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!