【问题标题】:Getting Query Parameter from a URL which inturn has some URL with Query parameters从 URL 获取查询参数,该 URL 又具有一些带有查询参数的 URL
【发布时间】: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#,但也许这对你有帮助:stackoverflow.com/questions/1380617/request-url-parameter 无论如何,你必须对& 进行编码,这样它就不会被识别为“base”的参数网址”。
  • @NLV:HTML 编码!= URL 编码:en.wikipedia.org/wiki/Percent-encoding

标签: javascript regex url query-string


【解决方案1】:

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

这将大大简化您的任务

【讨论】:

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

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

【讨论】:

    猜你喜欢
    • 2015-04-02
    • 2018-05-29
    • 2017-02-01
    • 2014-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-24
    • 1970-01-01
    相关资源
    最近更新 更多