我正在尝试编写一些在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
之后的所有值。
由于
答案 0 :(得分:2)
POST
ShortLink.php
文件时,您应确保事先对a
的值进行网址编码。否则,您正在呼叫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));
另请参阅How do I pass a URL with multiple parameters into a URL?和How to encode a URL in Javascript?。
答案 1 :(得分:1)
为什么不使用url shortener API,例如Google url shortener。这样,你可以保持你的代码,但对于像Facebook和Twitter这样的网站,它很短。
答案 2 :(得分:1)
试试这个:
$.post("ShortLink.php?value=" + escape(a));