2011-09-07 51 views
0

我正在嘗試編寫一些在Facebook和Twitter上共享頁面的代碼。 我現在面臨的問題是,我想分享的頁面有一個很大的查詢字符串,如:如何在社交媒體上創建一個短分享網址

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

但似乎Facebook和Twitter不喜歡大的查詢字符串。

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

我得到的**a**正確的值:

我也用微小的URL與下面的方法中,我傳遞的URL到PHP函數來獲取微小的URL嘗試。從那以後,我這個值傳遞到PHP文件:

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

在該PHP文件,我得到了以下值:

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

所有3後的值被刪除。

感謝

回答

2

POST荷蘭國際集團到您的ShortLink.php文件,你應該確保URL編碼的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

爲什麼不你剛剛使用的網址縮短服務的API,像Google url shortener。這樣,你可以保持你的代碼的方式,但對於像Facebook和Twitter這樣的網站來說,它很好。

1

試試這個:

$.post("ShortLink.php?value=" + escape(a)); 
相關問題