Хеш URL-адреса сохраняется между перенаправлениями

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

Есть идеи?

35
задан Palec 15 November 2013 в 11:22
поделиться