Tous ceux qui utilisent jQuery savent que les méthodes get et post de jQuery ont trois paramètres : adresse, données et fonction de rappel, mais nous savons que l'adresse peut également suivre les données (sous la forme : get_data.php?v1=1&v2=2 ), Et le deuxième paramètre peut être omis, c'est-à-dire que le deuxième paramètre peut être écrit directement dans la fonction de rappel. Alors, quelle est la différence entre écrire des données après l'adresse et les écrire dans le paramètre data ?
Je viens de faire quelques expériences, et ce sera clair si vous regardez le code suivant :
Le contenu suivant nécessite une réponse pour être vu
jquery_data.php
echo "post: "; print_r($_POST); echo "get: "; print_r($_GET); ?>
jquery_test.html
Expérience 1 :
$(function() { // post 方法,两处都有数据 $.post('jquery_data.php?v1=1', {v2: 2}, function(data) { $(' ').append(data).appendTo('body'); }); });
Résultats de retour :
post: Array ( [v2] => 2 ) get: Array ( [v1] => 1 )
Expérience 2 :
$(function() { // post 方法,数据在地址后面, 第二个参数为回调函数 $.post('jquery_data.php?v1=1', function(data) { $('<pre/>').append(data).appendTo('body'); }); });
Renvoyer le résultat, les données sont en get :
post: Array ( ) get: Array ( [v1] => 1 )
Expérience 3 :
$(function() { // get 方法,用 data 参数传值 $.get('jquery_data.php', {v2: 2}, function(data) { $('<pre/>').append(data).appendTo('body'); }); });
Renvoyer le résultat, les données sont en get :
post: Array ( ) get: Array ( [v2] => 2 )
Expérience 4 :
$(function() { // get 方法,两处都有数据 $.get('jquery_data.php?v1=1', {v2: 2}, function(data) { $('<pre/>').append(data).appendTo('body'); }); });
Renvoie le résultat, les deux données sont fusionnées, toutes deux dans get :
post: Array ( ) get: Array ( [v1] => 1 [v2] => 2 )
Expérience 5 :
$(function() { // get 方法,两处都有数据,且变量名相同 $.get('jquery_data.php?v2=1', {v2: 2}, function(data) { $('<pre/>').append(data).appendTo('body'); }); });
Renvoyer le résultat, les données sont en cours de récupération et les données dans le paramètre data couvrent les données après l'adresse :
post: Array ( ) get: Array ( [v2] => 2 )
A travers ces exemples simples, il n'est pas difficile de voir que les données derrière l'adresse sont toujours transférées sous forme de get, que la méthode get ou la méthode post soit utilisée et que les données du paramètre data le soient ; transféré selon la méthode.
Par conséquent, afin d'éviter toute confusion, il est recommandé d'essayer de ne pas écrire les données après l'adresse, mais de les placer uniformément dans le paramètre data.
Bien sûr, si vous souhaitez utiliser get to pass valeurs lorsque vous utilisez la méthode post, vous pouvez alors écrire les données à transmettre dans la méthode get après l'adresse, et les données à transmettre dans la méthode post dans le paramètre data.
En bref, les méthodes sont mortes et les gens sont vivants. La manière de les utiliser dépend de la situation réelle. Zi a dit un jour : La pratique est le seul critère pour tester la vérité. Faites des expériences lorsque vous n'avez rien à faire et maîtrisez plus fermement les connaissances.