由于某些原因,非IE浏览器在发送服务器端重定向(使用Location头)时似乎会保留URL哈希(如果存在)。例如:
// a simple redirect using Response.Redirect("http://www.yahoo.com");
Text.aspx
如果我访问:
Test.aspx#foo
在 Firefox/Chrome 中,我被带到了:
http://www.yahoo.com#foo
有人能解释一下为什么会出现这种情况吗?我在不同平台上尝试了多个服务器端重定向(都产生了Location头),但这似乎总是发生。我没有在HTTP规范中看到它,但它确实似乎是浏览器本身的问题。URL哈希(如预期的那样)永远不会发送到服务器,因此服务器重定向不会被其污染,浏览器似乎只是出于某种原因将其保留。
有任何想法吗?