Maison > interface Web > js tutoriel > Comment soumettre des données de formulaire codées en URL avec $http d'AngularJS sans jQuery ?

Comment soumettre des données de formulaire codées en URL avec $http d'AngularJS sans jQuery ?

Mary-Kate Olsen
Libérer: 2024-12-17 14:25:10
original
613 Les gens l'ont consulté

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

Soumission de données de formulaire codées en URL avec $http sans jQuery

Dans AngularJS, effectuer des requêtes AJAX avec $http est une tâche couramment abordée. Cependant, soumettre des données de formulaire codées en URL sans recourir à jQuery peut être un défi pour les débutants.

Approches ayant échoué

Les approches mentionnées, telles que l'utilisation de données : {username : $scope.userName, mot de passe : $scope.password} ou params : {username : $scope.userName, mot de passe : $scope.password}, ​​ne le sera pas encoder correctement les données au format URL.

Solution correcte

Pour obtenir la fonctionnalité souhaitée, le service $http d'Angular propose une fonction transformRequest qui permet une transformation personnalisée des données avant de les envoyer au serveur.

$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 () {});
Copier après la connexion

Solution améliorée (AngularJS V1.4 et Plus tard)

Les versions 1.4 et ultérieures d'AngularJS ont introduit de nouveaux services spécifiquement conçus pour les paramètres de codage d'URL. Grâce à ces services, le processus peut être encore simplifié :

$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 () {});
Copier après la connexion

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal