如何在javascript中访问请求查询字符串参数?

Posted

技术标签:

【中文标题】如何在javascript中访问请求查询字符串参数?【英文标题】:How to access request query string parameters in javascript? 【发布时间】:2013-08-04 01:34:51 【问题描述】:

我见过很多使用 RegEx 的解决方案,坦率地说,这似乎有点过分了,因为 javascript 用途广泛。

必须有更简单的方法来访问请求参数。

有人可以帮我演示一下吗?

【问题讨论】:

您是否尝试过自己编写一些代码? 你能说得更具体一点吗? 我相信 OP 指的是附加到当前页面的 URL 的查询字符串。澄清可能有帮助,但对我来说真的很清楚。 另见this Q/A。 【参考方案1】:

我在depths of the net中找到了一个有用的方法。

function querySt(Key) 
    var url = window.location.href;
    KeysValues = url.split(/[\?&]+/);
    for (i = 0; i < KeysValues.length; i++) 
        KeyValue = KeysValues[i].split("=");
        if (KeyValue[0] == Key) 
            return KeyValue[1];
        
    

抛开不赞成票和插件,无论如何谢谢。

【讨论】:

找到原始 javascript 版本的工作很不错,但是,这不是您想要的。 我其实很喜欢纯javascript版本,因为它不需要加载一些额外的库。不管怎样,很高兴你想出了一个解决方案。 次要争论点:您的.split() 使用了您在问题中抱怨的正则表达式。并不是说我会做不同的事情。 =) 这适用于我的情况,但我注意到这不能处理数组 - 如果一个参数有多个值(即 param1=val1&param1=val2&param1=val3)怎么办?整洁的解决方案,在任何情况下都适用于大多数情况。 window.location.search,我想。 (原因可见,例如here, in probably the best guide on URL encoding。)【参考方案2】:

你可以使用jQuery插件Purl (A JavaScript URL parser) v2.3.1

var queryStringParameter = $.url().param('queryStringParameter');

【讨论】:

【参考方案3】:

jQuery BBQ 插件来拯救。见deparam method

【讨论】:

以上是关于如何在javascript中访问请求查询字符串参数?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Postman 中获取请求参数?

如何在 Javascript 中创建查询参数?

AWS Api Gateway 硬编码查询字符串参数

如何在 JavaScript 中删除查询字符串参数?

如何在 Grafana 查询字符串中使用请求参数值

逐个访问URL的每个查询字符串参数