По какой-то причине браузеры не-IE, похоже, сохраняют хеш-URL (если есть), когда отправляется перенаправление на стороне сервера (с использованием заголовка Location). Пример:
// 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-адресов (как и ожидалось) никогда не отправляется на сервер, поэтому перенаправление сервера не загрязняется им, браузеры по какой-то причине просто сохраняют его.
Любые идеи?