从一个带有查询参数的URL中获取查询参数,其中该URL又包含一些带有查询参数的URL。

5
我有以下的URL:
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, " "));
  }

有什么想法吗?

我在 C# 的后台代码中设置了。 - NLV
1
@NLV:我对C#一无所知,但也许这可以帮到你:http://stackoverflow.com/questions/1380617/request-url-parameter 无论如何,你必须对&进行编码,以免被识别为“基本URL”的参数。 - Felix Kling
如果我进行HTML编码,那么得到的结果是&。那又怎样? - NLV
1
@NLV:HTML编码 != URL编码:http://en.wikipedia.org/wiki/Percent-encoding - Felix Kling
可能是重复的问题:如何在JavaScript中获取查询字符串值? - Sindre Sorhus
显示剩余4条评论
2个回答

2

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


0

您考虑过对pageURL参数进行URL编码吗?

这将极大地简化您的任务。


好的,你能解释一下它如何帮助我吗? - NLV
卡在同一个问题上,没有头绪。有什么想法吗? - NLV
简单来说,你名字中第一个等号后面的所有内容都是你的参数。只需解码它,你就可以得到一个URL。 - elmac
只要页面URL编码正确,你的脚本就应该能正常工作。 只是别忘了再进行一次编码。jQuery有htmlEncode和htmlDecode ;) - elmac
好的,当我进行编码时,只有“&”被替换为“&”,没有其他字符。因此,“&”仍然在源链接之前,并且该JS函数无法获取它。 - NLV
@NLV:这是HTML编码,你需要URL或百分比编码。 - Felix Kling

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接