Maison  >  Article  >  interface Web  >  Analyse comparative de la différence entre $http.post et jQuery.post dans AngularJS_AngularJS

Analyse comparative de la différence entre $http.post et jQuery.post dans AngularJS_AngularJS

WBOY
WBOYoriginal
2016-05-16 16:12:461384parcourir

Souvent, nous devons utiliser ajax pour soumettre des données de publication. Angularjs est similaire à jq et contient également des publications encapsulées.

Mais l’article de jQuery est évidemment plus simple et plus convivial que celui d’angularjs.

AngularJS :

Copier le code Le code est le suivant :

$http.post('do-submit.php',myData)
.succès(fonction(){
// du code
});

jQuery :

Copier le code Le code est le suivant :

$.post('do-submit.php', mesDonnées, fonction() {
// du code
});

On dirait qu’il n’y a aucune différence, n’est-ce pas ? Cependant, les données soumises à l'aide de $http d'angularjs ne peuvent pas être obtenues via $_REQUEST/$_POST sur le serveur PHP. Vous devez plutôt utiliser :

.

Copier le code Le code est le suivant :

$params = json_decode(file_get_contents('php://input'),true);

pour l'obtenir. Quelle est la raison ?

C'est parce que les deux articles gèrent les en-têtes différemment... jQuery sérialisera myData en tant qu'objet JSON, par exemple :

Copier le code Le code est le suivant :

var mesDonnées = { a : 1, b : 2 };
// jQuery convertira myData en chaîne avant de publier les données : "a=1&b=2"

Et Angular ne le fait pas.

Quelle est la solution ?

1. Introduisez jquery, à condition que les utilisateurs cibles ne craignent pas de charger des dizaines de scripts K supplémentaires. (Non recommandé)

2. Obtenez les paramètres côté serveur (PHP) via $params = json_decode(file_get_contents('php://input'),true);. Les petits projets peuvent le faire, mais les grands projets doivent être modifiés un par un. un. (Non recommandé)

3. Modifier le traitement par défaut du $httpProvider d'Angular : http://victorblog.com/2012/12/20/make-angularjs-http-service-behave-like-jquery-ajax/ (Afin de faciliter la gestion future, c'est le meilleur moyen)

Avez-vous une meilleure compréhension de la différence entre $http.post et jQuery.post dans AngularJS ? J'espère que vous gagnerez quelque chose en lisant cet article ?

Déclaration:
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