如何在Javascript中创建查询参数?
时间:2020-03-06 14:30:40 来源:igfitidea点击:
有什么方法可以创建查询参数以在JavaScript中执行GET请求吗?
就像在Python中一样,我们有urllib.urlencode(),它接收一个字典(或者两个元组的列表)并创建一个类似''var1 = value1&var2 = value2'的字符串。
解决方案
如果我们使用的是原型,则有Form.serialize
如果我们使用的是jQuery,则有Ajax / serialize
我不知道有任何独立的功能来完成此操作,但是如果我们当前不使用库,则通过Google搜索它会发现一些有希望的选择。如果不是,那么我们确实应该因为它们是天堂。
该线程指向一些用于在php中转义URL的代码。有escape()和unescape()可以完成大部分工作,但是我们需要添加一些额外的东西。
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;
}
干得好:
function encodeQueryData(data) {
let ret = [];
for (let d in data)
ret.push(encodeURIComponent(d) + '=' + encodeURIComponent(data[d]));
return ret.join('&');
}
用法:
var data = { 'first name': 'George', 'last name': 'Jetson', 'age': 110 };
var querystring = encodeQueryData(data);

