此处使用Response.Redirect()
方法的任何人,您是否在浏览器地址栏上遇到了一些附在uri末尾的奇怪字符?
奇怪的字符是哈希,下划线,等号和下划线(没有空格),如下面......我不知道这些是什么,当这些奇怪的字符出现时,重定向没有发生得不错。
#_=_
对此有任何见解请分享。感谢
答案 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