当前位置: 首页 > 面试题库 >

使用JavaScript向URL添加参数

堵景天
2023-03-14
问题内容

在使用AJAX调用的Web应用程序中,我需要提交一个请求,但要在URL的末尾添加一个参数,
寻找一种JavaScript函数,该函数解析URL并查看每个参数,然后添加新参数或更新值(如果已经存在)。


问题答案:

您需要调整的基本实现如下所示:

function insertParam(key, value)
{
    key = encodeURI(key); value = encodeURI(value);

    var kvp = document.location.search.substr(1).split('&');

    var i=kvp.length; var x; while(i--) 
    {
        x = kvp[i].split('=');

        if (x[0]==key)
        {
            x[1] = value;
            kvp[i] = x.join('=');
            break;
        }
    }

    if(i<0) {kvp[kvp.length] = [key,value].join('=');}

    //this will reload the page, it's likely better to store this until finished
    document.location.search = kvp.join('&'); 
}

这大约是正则表达式或基于搜索的解决方案的两倍,但是这完全取决于查询字符串的长度和任何匹配项的索引

我为完成测试而基准的慢速正则表达式方法(慢了大约+ 150%)

function insertParam2(key,value)
{
    key = encodeURIComponent(key); value = encodeURIComponent(value);

    var s = document.location.search;
    var kvp = key+"="+value;

    var r = new RegExp("(&|\\?)"+key+"=[^\&]*");

    s = s.replace(r,"$1"+kvp);

    if(!RegExp.$1) {s += (s.length>0 ? '&' : '?') + kvp;};

    //again, do what you will here
    document.location.search = s;
}


 类似资料:
  • 我使用Spring Security with OAuth2进行身份验证/授权,使用以下项目。http://projects.spring.io/spring-security-oauth/ 我需要向OAuth2授权URL添加参数。我不确定应该如何将它添加到AuthorizationCodeResourceDetails bean中? 默认流只有以下参数/OAUTH/Authorize?Clien

  • 本文向大家介绍javascritp添加url参数将参数加入到url中,包括了javascritp添加url参数将参数加入到url中的使用技巧和注意事项,需要的朋友参考一下 将对象参数加入到url中,如果原来url中有则覆盖 js代码

  • 问题内容: 是否可以在向其添加一些参数数据的同时将请求转发给另一个控制器?我尝试添加到ModelMap中,但是它似乎不存在问题。我正在做类似的事情: 我能想到的唯一其他方法是将参数放在会话上,然后将其弹出目标控制器。 问题答案: 最简单的方法是将数据添加到请求中。 由于这是转发,因此将相同的请求传递到服务器内的不同处理程序。 作为示例,让我们从两个控制器的简单设置开始,一个转发到另一个: 添加数据

  • 问题内容: 这应该是一个简单的任务,但是我似乎找不到解决方案。 我有一个基本字符串,它像这样被传递为查询字符串参数:。我想使用JavaScript将该参数解码,但是似乎无法解码。 我已经尝试过,但是结果仍然包含迹象。 问题答案: 是的,decodeURIComponent函数不会将+转换为空格,这是事实。因此,您必须使用替换功能替换+。 理想情况下,以下解决方案有效。

  • 我试图使用HttpClient将“Accept Encoding”参数添加到我的HTTP头中,如“gzip,deflate”。代码如下所示。但是,我在响应中遇到以下错误,无法添加header参数。响应不包含添加的标题字段 错误:内部服务器错误

  • 问题内容: 我有一个使用邮递员传递URL参数的工作方案。现在,当我尝试通过Swift中的Alamofire进行操作时,它不起作用。 您如何在Alamofire中创建此网址? http:// localhost:8080 /?test = 123 问题答案: 问题是您正在使用。Alamofire会根据您所使用的HTTP进行不同的解释。 对于,和请求,将参数编码为查询字符串并将其添加到URL,但是对于