2011-10-03 68 views
6

這裏任何人都在用Response.Redirect()的方法,難道你在瀏覽器地址欄上遇到一些附在uri末尾的奇怪字符嗎?
奇怪的字符是哈希,下劃線,等號和下劃線(沒有空格),比如下面......我不知道這些都是關於什麼,當這些奇怪的字符出現時,重定向沒有正確發生。奇怪的#_ = _在response.redirect後出現在url的末尾ASP.NET

#_=_ 

對此的任何見解請分享。謝謝

+0

你能否提供一些代碼?另外,你在瀏覽什麼瀏覽器? –

+1

偶然是你在你的網站上使用Facebook登錄? – Jeff

+0

是的,我在我的網站上使用自定義Facebook登錄,不知怎麼它發生了 – FBLover2011

回答

1

任何在location-part的URL跟在#之後指的是頁面中的錨點,通常是<a name=""><whatever id="">。一些網站使用它們(可能與客戶端Javascript)來執行魔術,但是因爲你問這個問題,所以我覺得不適合你。所以,沒有真正的押韻或理由說明這些角色本身的存在或缺失會導致重定向工作與否。實際上,它們甚至不會在HTTP請求中發送到服務器(至少,Firefox不會)。

發生這種情況時,您看過HTTP請求交換嗎?像Live HTTP Headers,HttpFox或Firebug(看一下Net面板)就可以幫助你解決這個問題,並且可能會告訴你錯誤#_=_是從哪裏來的。

1

這是基於幾個人在那裏我的解決方案:

$(function() { 
    if (window.location.href.indexOf("#_=_") > -1) { 
     //remove facebook oAuth response bogus hash 
     if (window.history && window.history.pushState) { 
      history.pushState('', document.title, window.location.pathname); 
     } else { 
      window.location.href = window.location.href.replace(location.hash, ""); 
     } 
    } 
}); 

https://stackoverflow.com/a/7845639/1467810

https://stackoverflow.com/a/15323220/1467810

https://stackoverflow.com/a/2295951/1467810

相關問題