Lorsque j'envoie une AJAX Post request et envoie des paramètres dans queryString dans la méthode send (),
L'outil de capture XHR de Chrome Developer Tool affiche les paramètres sous la charge utile de la demande. et lorsque j'utilise la fonction post de jquery, l'outil affiche les paramètres sous la section Form Data.
Quelle est la différence ?
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 encodées lorsque vous encodez une chaîne de requête
xhr.send("name=foo&value=bar");
sinon, ils ne seront pas interprétés comme des données de formulaire par Developer Tools.
jquery fait la majorité du travail pour vous à cet égard.
pdate: Pour répondre explicitement quelle est la différence ...
si une demande (généralement POST) contient Content-type
en-tête défini sur application/x-www-form-urlencoded
le corps devrait être sous la forme d'une chaîne de requête standard avec une clé encodée en url =
valeur paires jointes par &
. Form data La section affiche ensuite les paramètres de valeur-clé (lorsqu'ils sont analysés). Cette méthode était beaucoup plus courante dans le passé car elle est utilisée par défaut pour les formulaires HTML.
d'autres cas sont présentés dans la section Request payload (et de nos jours analysés pour la lisibilité ainsi que pour les formats courants comme JSON).