使用JavaScript或jQuery编写带有GET参数的链接的最佳方式是什么

What is the best way to compose a link with GET parameters using JavaScript or jQuery

本文关键字:参数 链接 最佳 是什么 方式 GET JavaScript jQuery 使用      更新时间:2023-09-26

我想用从变量中收集的几个GET参数组成一个链接。例如:

link.php?param1=value1&param2=value2&param3=value3

在JavaScript中,如果变量var1var2var3已经设置为相应的值,我知道链接可以通过串联字符串和变量组成,如下所示:

url = "link.php?param1=" + var1 + "&param2=" + var2 + "&param3=" + var3;

有更干净或更好的方法吗?在jQuery中,AJAX请求函数接受一个数据参数,该参数可以很容易地设置为:

$.ajax({
  url: url,
  data:{
    param1: var1,
    param2: var2, 
    param3: var3
  }
});

是否有类似的方法来编写链接,但只将其存储在变量中,而不是执行ajax请求?

我知道jQuery的.get()函数,正如文档中提到的:

"使用HTTP GET请求从服务器加载数据">

我不想要这个,我只需要组成链接。

var makeFullUrl = function (url, params) {
    return [url, Object.keys(params || {}).map(function (key) {
        return encodeURIComponent(key) + '=' + encodeURIComponent(params[key]);
    }).join('&')].join('?');
};

这是我不久前(ES2015之前(做的一个函数-用基本URL作为参数1调用它,并使用类似的对象

{
    param1Name: param1Value,
    param2Name: param2Value
}

这是ES2015,laffs

var makeFullUrl = (url, params) => [url, Object.keys(params || {}).map(key => encodeURIComponent(key) + '=' + encodeURIComponent(params[key])).join('&')].join('?');