Existe-t-il un moyen de créer les paramètres de requête pour effectuer une requête GET en JavaScript?
Tout comme en Python, vous avez urllib.urlencode()
, qui prend un dictionnaire (ou une liste de deux tuples) et crée une chaîne comme 'var1=value1&var2=value2'
.
for
, utilisez hasOwnProperty pour garantir l'interopérabilité.URLSearchParams a une prise en charge croissante des navigateurs.
Node.js propose le module de chaîne de requête .
la source
searchParams.append(otherData)
fonctionnel
la source
var data = { bloop1: true, bloop2: "something" }; var url = "https://something.com/?"; var params = encodeData(data); var finalUrl = url + params; // Is this the right use?
Devrait produirehttps://www.something.com/?bloop1=true&bloop2=something
?Zabba a fourni dans un commentaire sur la réponse actuellement acceptée une suggestion qui est pour moi la meilleure solution: utilisez jQuery.param () .
Si j'utilise
jQuery.param()
les données de la question d'origine, le code est simplement:La variable
params
seraPour des exemples, des entrées et des sorties plus compliqués, consultez la documentation jQuery.param () .
la source
Nous venons de publier arg.js , un projet visant à résoudre ce problème une fois pour toutes. C'était traditionnellement si difficile, mais maintenant vous pouvez faire:
Et la lecture fonctionne:
ou obtenir le tout:
et si vous vous souciez de la différence entre
?query=true
et,#hash=true
vous pouvez utiliser les méthodesArg.query()
etArg.hash()
.la source
Cela devrait faire le travail:
Exemple:
Résultat:
la source
encodeURIComponent()
place deencodeURI
. Découvrez la différence .ES2017 (ES8)
Faire usage de
Object.entries()
, qui renvoie un tableau de[key, value]
paires d'objets . Par exemple, car{a: 1, b: 2}
il reviendrait[['a', 1], ['b', 2]]
. Il n'est pas pris en charge (et ne le sera pas) uniquement par IE.Code:
Exemple:
Résultat:
la source
Si vous utilisez Prototype, il existe Form.serialize
Si vous utilisez jQuery, il y a Ajax / serialize
Cependant, je ne connais aucune fonction indépendante pour accomplir cela, mais une recherche sur Google a révélé des options prometteuses si vous n'utilisez pas actuellement de bibliothèque. Si ce n'est pas le cas, vous devriez vraiment le faire parce qu'ils sont le paradis.
la source
Je voudrais revenir sur cette question vieille de presque 10 ans. À l'ère de la programmation standard, votre meilleur pari est de configurer votre projet à l'aide d'un gestionnaire de dépendances (
npm
). Il existe toute une industrie artisanale de bibliothèques qui codent les chaînes de requête et prennent en charge tous les cas extrêmes. C'est l'un des plus populaires -https://www.npmjs.com/package/query-string
la source
Une petite modification au typographie:
la source
Ce fil pointe vers du code pour échapper les URL en php. Il y a
escape()
etunescape()
qui fera la plupart du travail, mais vous devez ajouter quelques choses supplémentaires.la source