如何将具有多个参数的URL传递给URL?

基本上我试图通过这样的URL:

www.foobar.com/?first=1&second=12&third=5 

到像这样的URL:

 http://www.facebook.com/sharer.php?&t=FOOBAR&u=http://www.foobar.com/first=12&sec=25&position=2 

它只识别第一个参数。 我与LinkedIn和Twitter分享有同样的问题,所以这一定是我做错了。

5 Solutions collect form web for “如何将具有多个参数的URL传递给URL?”

而不是html encoding你的URL参数,你需要对它进行URL encode

 http://www.facebook.com/sharer.php?&t=FOOBAR&u=http%3A%2F%2Fwww.foobar.com%2F%3Ffirst%3D12%26sec%3D25%26position%3D 

你可以在大多数语言中轻松地做到这一点 – 在JavaScript中 :

 var encodedParam = encodeURIComponent('www.foobar.com/?first=1&second=12&third=5'); // encodedParam = 'http%3A%2F%2Fwww.foobar.com%2F%3Ffirst%3D12%26sec%3D25%26position%3D' 

(其他语言也有相同的方法)

你错过了? 在第二个URL(另外,它应该被URL编码为%3F )。

另外,我相信其余的&需要是URL,而不是HTML编码。 更改&second=12&third=5 %26second=12%26third=5 ,一切都应该工作。

这个:

 &u=http://www.foobar.com/first=12&sec=25&position=2 

应该:

 &u=http://www.foobar.com/%3Ffirst=12%26sec=25%26position=2 

在jQuery中,你可以使用:

 var myObject = {first:1, second=12, third=5}; jQuery.param(); 

Doc: http : //api.jquery.com/jquery.param/输出:first = 1&second = 12&third = 5无论您的对象包含什么,都会将其格式化。

在您的示例中,部分传入的URL不是URL编码的(例如,冒号应该是%3A,正斜杠应该是%2F)。 看起来您已经将参数编码为参数URL,而不是参数URL本身。 尝试编码它。 你可以使用encodeURIComponent

你必须逃避&angular色。 把你的

 & 

 & 

你应该很好。

  • IE9漂浮与溢出:隐藏和表宽度100%不正确显示
  • PHP:你如何确定每个循环的第N次迭代?
  • 检查Chrome浏览器中的hover元素?
  • 使用JavaScript将相对path转换为绝对path
  • 删除文本input的内部阴影
  • 在Html.DropDownList的<option>下添加html类标记
  • jquery,清除/清空tbody元素的所有内容?
  • HTML锚点标记是否应该声明已禁用的属性?
  • HTML表单中的多个提交button
  • 正确的MIMEtypes的favicon.ico?
  • css:避免图像hover第一次闪烁