Heim > Web-Frontend > js-Tutorial > Wie übermittle ich URL-codierte Formulardaten mit $http von AngularJS ohne jQuery?

Wie übermittle ich URL-codierte Formulardaten mit $http von AngularJS ohne jQuery?

Mary-Kate Olsen
Freigeben: 2024-12-17 14:25:10
Original
687 Leute haben es durchsucht

How to Submit URL-Encoded Form Data with AngularJS's $http Without jQuery?

URL-codierte Formulardaten mit $http ohne jQuery senden

In AngularJS ist das Erstellen von AJAX-Anfragen mit $http eine häufig angegangene Aufgabe. Allerdings kann das Senden von URL-codierten Formulardaten ohne Verwendung von jQuery eine Herausforderung für Anfänger sein.

Fehlgeschlagene Ansätze

Die genannten Ansätze, wie z. B. die Verwendung von Daten: {Benutzername : $scope.userName, Passwort: $scope.password} oder Parameter: {Benutzername: $scope.userName, Passwort: $scope.password}, ​​wird Codieren Sie die Daten nicht richtig im URL-Format.

Richtige Lösung

Um die gewünschte Funktionalität zu erreichen, bietet der $http-Dienst von Angular eine transformRequest-Funktion, die eine benutzerdefinierte Datentransformation vor dem Senden ermöglicht es auf den Server.

$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 () {});
Nach dem Login kopieren

Erweiterte Lösung (AngularJS V1.4 und Später)

AngularJS-Versionen 1.4 und höher haben neue Dienste eingeführt, die speziell für URL-Kodierungsparameter entwickelt wurden. Mithilfe dieser Dienste kann der Prozess weiter vereinfacht werden:

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    transformRequest: angular.identity,
    params: {username: $scope.userName, password: $scope.password}
}).then(function () {});
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWie übermittle ich URL-codierte Formulardaten mit $http von AngularJS ohne jQuery?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage