javascript - 使用 JavaScript 或 jQuery 构建带有 GET 参数的链接的最佳方式是什么

标签 javascript jquery url get url-parameters

我想用从变量收集的多个 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() 函数,正如文档中提到的:

"Load data from the server using an HTTP GET request."

我不需要这个,我只需要编写链接。

最佳答案

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
}

Here it is for ES2015, for laffs

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

关于javascript - 使用 JavaScript 或 jQuery 构建带有 GET 参数的链接的最佳方式是什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38932035/

相关文章:

javascript - 将 Revolution Slider 5+ 图层设置为静态图层

javascript - 使用 CSS 将表格转换为 div,无需 tbody

javascript - 将所有纯文本替换为同一 div 的类

c# - 具有多个查询字符串参数的 Url 编码

php - 尝试使用 Php-MySQL 从数据库检索视频 URL 并将其显示在浏览器上

javascript - 使用多个同步 Xmlhttp 请求创建/更新 Microsoft Dynamics CRM 订单详细信息记录不起作用

javascript - 带语法高亮的 iFrame 中的 HTML 编辑器

jquery - ASP.NET MVC 3 LoadingElementDuration 不起作用?

javascript - 灯箱未加载 RoyalSlider

java - Android - 在等待来自 URL 的 ImageView 时显示进度对话框