簡體   English   中英

為什么我無法從'#'字符后的Facebook發送的URL中獲取參數

[英]Why i can't get parameters from the url sent by Facebook after '#' character

我正在嘗試使用jsp和servlet根據Facebook服務器端身份驗證流程登錄到facebook。 我成功登錄了我的fb帳戶,但是當fb重定向到我的應用程序時,它將在字符“#”后發送參數(狀態...)。 我正在看這個: http : //facebook.stackoverflow.com/questions/4144878/get-url-parameters-after-in-java

但是我用與他們不同的方式來做。

這是我的代碼:

response.sendRedirect(response.encodeRedirectURL("http://www.facebook.com/dialog/oauth/?client_id=343473222406382" +
                "&redirect_uri=http://localhost:8080/accountsLogger&response_type=token&state=logged"));

我將重定向到:

{http://localhost:8080/accountsLogger/#state=logged&access_token=AAAE4YxdpUO4BAILjJoj5GsFZBDir1YmZCy4ZC9BmZAOCAztC2QclKo46OSce7dzObL6lSzrYpRDgQycOzzhfbqThR6kVC16lmurC5X5oV1lIrsvI0h9D&expires_in=4329.}

FB API的構建(大部分)是在客戶端使用的。 URL的哈希部分(“#”之后的內容)永遠不會通過瀏覽器發送到服務器(這就是為什么您無法選擇它)。 如果需要服務器端此信息,則需要在accountLogger頁面( document.location.hash )上使用javascript進行提取,將“哈希參數”轉換為另一個URL上的“常規” URL參數,然后將頁面重定向至該網址。

#之后的URL不會發送到服務器。 它最初是作為錨定的,它是要在下載頁面上引用的內容。 瀏覽器然后執行:

GET /your/url.htm?param1=value&param2=value

如果#someanchor處有#someanchor ,則瀏覽器會嘗試定位頁面以使該錨可見(如果存在)。

老派主播:

<a name="someanchor">Hello</a>

標准HTML錨點:

<p id="someanchor">Hello</p> (感謝@Jon Hanna)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM