Mon code :
fetch("api/xxx", {
body: new FormData(document.getElementById("form")),
headers: {
"Content-Type": "application/x-www-form-urlencoded",
// "Content-Type": "multipart/form-data",
},
method: "post",
}
J'ai essayé de poster mon formulaire en utilisant l'api fetch, et le corps qu'il envoie est comme :
-----------------------------114782935826962
Content-Disposition: form-data; name="email"
test@example.com
-----------------------------114782935826962
Content-Disposition: form-data; name="password"
pw
-----------------------------114782935826962--
(Je ne sais pas pourquoi le nombre en limite est changé à chaque envoi...)
Je voudrais qu'il envoie les données avec "Content-Type" : "application/x-www-form-urlencoded", que dois-je faire ? Ou si je dois faire avec, comment décoder les données dans mon contrôleur ?
Pour qui répond à ma question, je sais que je peux le faire avec :
fetch("api/xxx", {
body: "email=test@example.com&password=pw",
headers: {
"Content-Type": "application/x-www-form-urlencoded",
},
method: "post",
}
Ce que je veux, c'est quelque chose comme $("#form").serialize() en jQuery (sans utiliser jQuery) ou le moyen de décoder les données multipart/formulaires dans le contrôleur. Merci pour vos réponses.
0 votes
Quel est le problème avec l'utilisation de
FormData
?1 votes
Je veux l'afficher comme "email=test@example.com&password=pw". Est-ce possible ?
1 votes
"Je ne sais pas pourquoi le numéro dans les limites est changé à chaque fois qu'il envoie " - L'identifiant de frontière est juste un identifiant aléatoire, il peut être n'importe quoi et n'a aucune signification en soi. Il n'y a donc rien de mal à choisir un nombre aléatoire à cet endroit (ce que font généralement les clients).