如何在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);