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'
Réponses
Trop de publicités?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("&");
}
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.
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.
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;
}