218 votes

Créer des paramètres de requête en javascript

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 dict (ou une liste de deux n-uplets) et crée une chaîne comme 'var1 = valeur1 & var2 = valeur2'

232voto

Shog9 Points 82052

Voici:

 // Usage:
//   var data = { 'first name': 'George', 'last name': 'Jetson', 'age': 110 };
//   var querystring = EncodeQueryData(data);
// 
function EncodeQueryData(data)
{
   var ret = [];
   for (var d in data)
      ret.push(encodeURIComponent(d) + "=" + encodeURIComponent(data[d]));
   return ret.join("&");
}
 

83voto

Manav Points 3039

amusant (ctional)

 function encodeData(data) {
    return Object.keys(data).map(function(key) {
        return [key, data[key]].map(encodeURIComponent).join("=");
    }).join("&");
}   
 

10voto

Mat Ryer Points 861

Nous venons d' arg.jsun projet visant à résoudre ce problème une fois pour toutes. C'est traditionnellement été si difficile, mais maintenant vous pouvez le faire:

var querystring = Arg.parse({name: "Mat", state: "CO"});

Et à la lecture des œuvres:

var name = Arg.get("name");

ou de l'obtention de l'ensemble du lot:

var params = Arg.all();

et si vous vous souciez de la différence entre ?query=true et #hash=true , alors vous pouvez utiliser l' Arg.query() et Arg.hash() méthodes.

8voto

Paolo Bergantino Points 199336

Si vous êtes à l'aide de Prototype , il est en Forme.sérialiser

Si vous utilisez jQuery il y a Ajax/sérialiser

Je ne sais pas du tout les fonctions indépendantes pour ce faire, cependant, mais une recherche google, il s'est rendu quelques options prometteuses si vous n'êtes pas en train d'utiliser une bibliothèque. Si vous n'êtes pas, cependant, vous devriez vraiment parce qu'ils sont le ciel.

-13voto

Kibbee Points 36474

Ce fil pointe vers du code pour échapper des URL en php. Il y a escape () et unescape () qui feront l'essentiel du travail, mais vous devez ajouter quelques éléments supplémentaires.

 function urlencode(str) {
str = escape(str);
str = str.replace('+', '%2B');
str = str.replace('%20', '+');
str = str.replace('*', '%2A');
str = str.replace('/', '%2F');
str = str.replace('@', '%40');
return str;
}

function urldecode(str) {
str = str.replace('+', ' ');
str = unescape(str);
return str;
}
 

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