奇怪的#_ = _出现在response.redirect ASP.NET之后的url末尾

时间:2011-10-03 07:48:59

标签: .net asp.net response.redirect

此处使用Response.Redirect()方法的任何人,您是否在浏览器地址栏上遇到了一些附在uri末尾的奇怪字符?
奇怪的字符是哈希,下划线,等号和下划线(没有空格),如下面......我不知道这些是什么,当这些奇怪的字符出现时,重定向没有发生得不错。

 #_=_ 

对此有任何见解请分享。感谢

2 个答案:

答案 0 :(得分:1)

location-part后面的#中的任何内容都指向页面中的锚点,通常为<a name=""><whatever id="">。一些网站使用它们(可能使用客户端Javascript)来执行魔术,但是既然你问这个问题,我觉得情况并非如此。因此,没有真正的押韵或理由,这些角色的存在与否本身会导致重定向工作与否。实际上,它们甚至没有在HTTP请求中发送到服务器(至少,Firefox没有)。

发生这种情况时,您是否看过HTTP请求交换?像Live HTTP Headers,HttpFox或Firebug(看看Net面板)之类的东西会帮助你解决这个问题,并可能指出错误的#_=_来自哪里。

答案 1 :(得分: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