【问题标题】:Strange #_=_ appear at the end of url after response.redirect ASP.NET在 response.redirect ASP.NET 之后奇怪的 #_=_ 出现在 url 的末尾
【发布时间】:2011-10-03 07:48:59
【问题描述】:

这里有人使用Response.Redirect()方法,你有没有遇到浏览器地址栏的uri末尾附加一些奇怪的字符?
奇怪的字符是 hash、下划线、等号和下划线(不带空格),如下所示......我不知道这些是什么,当这些奇怪的字符出现时,重定向没有正常发生。

 #_=_ 

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

【问题讨论】:

  • 你能提供一些代码吗?另外,你在什么浏览器上看到这个?
  • 您是否偶然在您的网站上使用 facebook 登录?
  • 是的,我在我的网站上使用自定义 facebook 登录,不知何故发生了

标签: .net asp.net response.redirect


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    这是我基于其他几个人的解决方案:

    $(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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-27
      • 1970-01-01
      • 1970-01-01
      • 2020-08-09
      • 2019-04-20
      • 1970-01-01
      相关资源
      最近更新 更多