42 votes

Quelle est la différence entre les données du formulaire et les données utiles de la demande ?

Lorsque j'envoie une demande AJAX Post et que j'envoie des paramètres dans queryString dans la méthode send(),

L'outil de capture XHR de Chrome Developer Tool montre les paramètres sous la charge utile de la requête. et lorsque j'utilise la fonction post de Jquery, l'outil montre les paramètres sous la section Form Data.

Quelle est la différence ?

29voto

jJ' Points 1514

Vous n'avez pas fourni suffisamment d'informations sur la façon dont vous utilisez la fonction d'envoi, mais je suppose que vous ne définissez pas le type mime pour spécifier que vous envoyez des données de formulaire.

xhr.setRequestHeader("Content-type","application/x-www-form-urlencoded");

les données envoyées sont dans ce cas codées comme on code une chaîne de requête

xhr.send("name=foo&value=bar");

sinon il ne sera pas interprété comme une donnée de formulaire par Developer Tools.

jquery fait la majorité du travail pour vous à cet égard.

Mise à jour : Pour répondre explicitement à la question de savoir quelle est la différence...

  • si une requête (typiquement POST) a Content-type dont l'en-tête est réglé sur application/x-www-form-urlencoded le corps doit être sous la forme d'une chaîne de requête standard avec un code url. clé = valeur paires jointes par & . Données du formulaire montre ensuite les paramètres clé-valeur (lorsqu'ils sont visualisés et analysés). Cette méthode était beaucoup plus courante dans le passé car elle est utilisée par défaut dans les formulaires HTML.

  • Les autres cas sont présentés dans Demande de charge utile (et aujourd'hui analysé pour la lisibilité également pour les formats courants comme JSON).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X