我想写一些代码,在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
后的所有值。
谢谢
当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 .
为什么不直接使用url缩短API呢,比如Google url缩短器。这样,你就可以保留你的代码,但对于像Facebook和Twitter这样的网站,它很短。
试试这个:
$.post("ShortLink.php?value=" + escape(a));