2013-10-30 89 views
0

我使用谷歌API和URL我收到這樣的:Retreive的access_token

http://website.com/generate-token/#access_token=ya29.AHES6ZTJwb9lzb0lua81oHa47-8ImcJf-8qE-02kIn8JcgEv&token_type=Bearer&expires_in=3600

我想:

$_SERVER['QUERY_STRING'] 
$url = "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; 

,但我得到的是http://website.com/generate-token/

我怎樣才能得到補te url並使用正則表達式來獲取access_token或者其他我能得到它的方式?

+0

網址有沒有查詢字符串。這些值是URL的「片段」的一部分。即。 '#'值。你需要''window.location.hash'並且用'&'和'='分開兩次,然後用JS找到你想要的值。 –

+0

簡答:你不能。 (不是沒有[JS](http://stackoverflow.com/questions/6778990/)) –

+0

你的意思是標記jQuery?我假設(從上面)你想在服務器上這樣做。 – Archer

回答

0

我的兩分錢(因爲你使用jQuery標籤的,我知道JavaScript是一種有效的解決方案):

var url = 'http://website.com/generate-token/ 
      #access_token=ya29.AHES6ZTJwb9lzb0lua81oHa47-8ImcJf-8qE- 
      02kIn8JcgEv&token_type=Bearer&expires_in=3600'; 

function getParameterByName(name, url) { 
    name = name.replace(/[\[]/, "\\\[").replace(/[\]]/, "\\\]"); 
    var regex = new RegExp("[\\?&#]" + name + "=([^&#]*)"), 
     results = regex.exec(url); 
    return results == null ? "" : 
      decodeURIComponent(results[1].replace(/\+/g, " ")); 
} 

alert(getParameterByName('access_token', url)); 

http://jsfiddle.net/yejwF/