Maison > interface Web > js tutoriel > Comment publier des données de formulaire codées en URL avec le service $http d'AngularJS ?

Comment publier des données de formulaire codées en URL avec le service $http d'AngularJS ?

Linda Hamilton
Libérer: 2024-12-11 05:16:11
original
956 Les gens l'ont consulté

How to POST URL-Encoded Form Data with AngularJS's $http Service?

Publication de données de formulaire codées en URL avec $http dans AngularJS

Comprendre le problème

En tant que nouvel utilisateur d'AngularJS, vous avez rencontré des difficultés lors de l'envoi de données au serveur à l'aide du service $http. Plus précisément, vous avez rencontré des problèmes lorsque vous avez tenté d'envoyer des données au format codé en URL.

La solution

Pour résoudre ce problème, vous devez convertir vos données en URL. paramètres au lieu de chaînes JSON. Ben Nadel explique cela dans son 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".
Copier après la connexion

Exemple

Voici un exemple qui montre comment publier des données de formulaire codées en URL à l'aide de $http :

$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

Mise à jour pour AngularJS v1.4 et Plus tard

Pour AngularJS v1.4 et versions ultérieures, vous pouvez tirer parti des nouveaux services disponibles pour obtenir le même résultat :

$http({
    method: 'POST',
    url: url,
    headers: {'Content-Type': 'application/x-www-form-urlencoded'},
    transformRequest: $httpParamSerializer
});
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