IIS выбрасывает фрагмент URL на пользовательских страницах ошибок? - PullRequest
0 голосов
/ 05 ноября 2010

Я использую старый метод 404-rewrite на определенном сайте, который связан с IIS6 *.

Так что, если я введу

http://example.com/non-existent/path

она вызывает мою страницу с ошибкой примерно так

http://example.com/catch.aspx?404;http://example.com/non-existent/path

Отлично.

За исключением , если я вызову страницу с фрагментом, например

http://example.com/non-existent/path#with-fragment

Я получаю тот же результат, что и выше. Я нигде не могу найти фрагмент:

  • Request.Url
  • Request.Url.OriginalString
  • Request.UrlReferrer
  • Request.RawUrl
  • заголовки, переменные сервера и т. Д.

Это произошло потому, что я хочу разрешить пути, созданные AJAX, для их серверных версий.

Можно ли как-нибудь получить исходный путь из моего обработчика?

Спасибо.

(*) Пожалуйста, не предлагайте мне менять платформу. Очевидно, я бы, если бы мог.

1 Ответ

2 голосов
/ 05 ноября 2010

Нет, нет.Часть URL после # никогда не передается на сервер согласно спецификации HTTP.Не имеет ничего общего с платформой.

Чтобы работать с информацией после # в javascript, вы должны взглянуть на плагины / функциональность Javascript History.jQuery имеет плагин истории, asp.net ajax и mvc ajax (частичные представления и др.) имеют это.Имейте в виду, что это не очень легко реализовать, вы должны начать думать об отмене / повторении.

Возможно, это не сработает, если вы пытаетесь обработать 404 на сервере - сервер не знаетчто было что-то после #.Не знаете, что вы хотите сделать, обработать 404 или «разрешить пути, созданные AJAX»?Что именно является целью?

...