0

我正在尝试编写一些在 Facebook 和 twitter 上共享页面的代码。我面临的问题是我要共享的页面有一个很大的查询字符串,例如:

http://domain.com/see.php?c=3&a=123&v=1

但似乎 Facebook 和 Twitter 不喜欢那个大查询字符串。

我还尝试使用以下方法使用小 URL,其中我将 URL 传递给 PHP 函数以获取小 URL:

var a = $("#Link").val();

我得到正确的值**a**。之后,我将此值传递给 PHP 文件:

$.post("ShortLink.php?value="+a

在那个 PHP 文件中,我得到了以下值:

http://domain.com/see.php?c=3

之后的所有值3都被删除。

谢谢

4

3 回答 3

2

POST输入文件时ShortLink.php,应确保a事先对 的值进行 URL 编码。否则,您正在调用ShortLink.php?value=http://domain.com/see.php?c=3&a=123&v=1,即发送:

value = http://domain.com/see.php?c=3
a = 123
v = 1

你想要的是ShortLink.php?value=http%3A%2F%2Fdomain.com%2Fsee.php%3Fc%3D3%26a%3D123%26v%3D1,因此发送:

value = http://domain.com/see.php?c=3&a=123&v=1

这可以通过以下方式实现encodeURIComponent()

$.post("ShortLink.php?value=" + encodeURIComponent(a));

另请参阅如何将具有多个参数的 URL 传递到 URL?以及如何在 Javascript 中对 URL 进行编码?.

于 2011-09-07T08:26:51.353 回答
1

你为什么不直接使用 url Shorter API,比如Google url Shorter。这样,您可以保留代码原样,但对于 Facebook 和 Twitter 之类的网站,它非常简短。

于 2011-09-07T08:23:21.923 回答
1

试试这个:

$.post("ShortLink.php?value=" + escape(a));
于 2011-09-07T08:25:11.617 回答