从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL

Posted

技术标签:

【中文标题】从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL【英文标题】:Getting Query Parameter from a URL which inturn has some URL with Query parameters 【发布时间】:2011-03-24 07:50:36 【问题描述】:

我有以下网址

http://somesite/somepage.aspx

我传递了一个查询参数值,该值具有另一个带有类似这样的查询参数的 URL。

http://somesite/somepage.aspx?pageURL=http://someothersite/someotherpage.aspx?param1=value&source=http://anotheronesite/anotherpage

我需要获取 pageURL 值作为粗体字母。但我得到了

http://someothersite/someotherpage.aspx?param1=value

我没有得到源参数。我正在使用以下 javascript 函数 -

  function getParameterByName( name )
  
     name = name.replace(/[\[]/,"\\\[").replace(/[\]]/,"\\\]");
     var regexS = "[\\?&]"+name+"=([^&#]*)";
     var regex = new RegExp( regexS );
     var results = regex.exec( window.location.href );
     if( results == null )
       return "";
     else
       return decodeURIComponent(results[1].replace(/\+/g, " "));
  

有什么想法吗?

【问题讨论】:

您从哪里获得名称/URL? 我在后面的代码中设置了-C#。 我想要一切 pageURL。它不会改变。我可以做吗?以 pageURL 作为参数的特定函数就可以了。 @NLV:我不知道C#,但也许这对你有帮助:***.com/questions/1380617/request-url-parameter 无论如何,你必须对& 进行编码,这样它就不会被识别为“base”的参数网址”。 @NLV:html 编码!= URL 编码:en.wikipedia.org/wiki/Percent-encoding 【参考方案1】:

你考虑过 html url 编码 pageURL 参数吗?

这将大大简化您的任务

【讨论】:

Okie,你能解释一下它对我有什么帮助吗? 没有线索。陷入同样的​​问题。有什么想法吗? easy...名字中第一个“=”之后的所有内容都是您的参数。只需将其解码回来,您就会得到一个网址。 或者简单地说:你的脚本应该可以工作,因为 pageURL 是编码的。只是不要忘记将其编码回来。 jquery 有 htmlEncode 和 htmlDecode ;) 好吧,当我对它进行编码时,& 被 &amp 取代。没有其他的。所以 & 仍然在源链接之前,并且它没有被那个 JS 函数获取。【参考方案2】:

您需要使用URL encoding 对参数进行编码。否则& 被视为保留字符,属于“基本 URL”。

【讨论】:

以上是关于从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL的主要内容,如果未能解决你的问题,请参考以下文章

查询从 URL 读取数据

如何从 getInitialProps 中的 url 获取查询参数?

AngularJs中url参数的获取

如何形成一个数组以从具有多个参数的 URL 进行查询

从 url 查询字符串参数中提取单独的值

abap如何获取url后面参数