POSTing de données de formulaire codées en URL avec $http dans AngularJS
Lorsqu'ils travaillent avec AngularJS, les développeurs sont souvent confrontés à la tâche de passer des appels AJAX à distance serveurs. Pour envoyer des paramètres, diverses approches ont été explorées.
Une méthode consiste à utiliser la fonction $.param() de jQuery. Cependant, pour éliminer la dépendance à jQuery, plusieurs autres options ont été envisagées, notamment la transmission de données en tant qu'objet, l'utilisation de paramètres et l'utilisation de JSON.stringify.
La solution réside dans la transformation des données de requête sortantes d'un objet en URL. paramètres. AngularJS sérialise par défaut les données au format JSON pour la publication. Pour publier en tant que publication FORM, l'algorithme de sérialisation doit être modifié et le type de contenu doit être défini sur "application/x-www-form-urlencoded".
Le code modifié suivant montre comment procéder :
$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 () {});
Pour plus de conseils, reportez-vous au blog de Ben Nadel ou à l'exemple fourni ci-dessus.
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!