JavaScript : rendre le Web interactif (école d'ingénieur) · Chapitre 10 · Application directe du cours
Encoder des paramètres
Dialoguer avec un serveur : fetch · niveau 1 (application)
Énoncé
Qu'affiche ce programme ?
const url = new URL("http://localhost:8000/api/livres");
url.searchParams.set("q", "l'étranger & co");
url.searchParams.append("rayon", "Littérature");
console.log(url.search);
console.log(url.searchParams.get("q"));
const p = new URLSearchParams("tri=prix&ordre=desc&tri=titre");
console.log(p.get("tri"), p.getAll("tri"), p.has("page"));
Que se passerait-il si l'on construisait l'adresse par concaténation, en écrivant "/api/livres?q=" + recherche, avec la recherche « l'étranger & co » ?
Corrigé
?q=l%27%C3%A9tranger+%26+co&rayon=Litt%C3%A9rature
l'étranger & co
prix [ 'prix', 'titre' ] false
L'apostrophe devient %27, « é » %C3%A9, l'espace + et « & » %26 ; get décode. Un paramètre peut être répété : get rend la première valeur, getAll toutes. Par concaténation, le « & » ne serait pas encodé : le serveur lirait un paramètre q valant « l'étranger » (espace final compris) et un second paramètre nommé « co », sans valeur. La recherche serait fausse, sans aucune erreur visible.
100 % gratuit
La suite du chapitre est sur Adloun
- 10 autres exercices corrigés dans ce chapitre
- Les 2 QCM du chapitre, le premier sans compte
- Le tuteur, qui guide pas à pas sans donner la réponse
Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.