Могу ли я изменить HTML-код состояния страницы на стороне клиента? - PullRequest
5 голосов
/ 22 декабря 2010

У меня есть статическая веб-страница HTML, и я хочу установить для ее кода состояния значение 404 "Не найдено".

Но я хочу сделать это, используя javascript или jQuery, а не какой-либо серверный язык.

Как я могу сделать это на клиенте? С JavaScript или, может быть, <meta> тег?

Ответы [ 5 ]

12 голосов
/ 22 декабря 2010

Невозможно установить код ответа HTTP с помощью программирования на стороне клиента.

4 голосов
/ 03 января 2012

Я думаю, что смысл этого упражнения заключается в следующем: вы хотите загрузить страницу, которая отображает пользовательское сообщение об ошибке для ваших пользователей. В то же время вы хотите сообщить своему Google Search Appliance (или аналогичным системам), что запрашиваемая страница должна быть удалена из индекса. У меня та же проблема, когда серверные сценарии не могут быть встроены. Я еще не нашел решения на стороне клиента.

2 голосов
/ 22 декабря 2010

Вы можете перенаправить страницу на несуществующую в JavaScript.Я понятия не имею, почему вы хотели бы сделать это, но эй хо:

<script type="text/javascript">
<!--
window.location = "zomgomgthispagedoesntexistlololol.html"
//-->
</script>

Но Дэвид прав, нет способа установить статус страниц ТА, так как это сценарий на стороне клиента.

0 голосов
/ 07 декабря 2017

Я сейчас столкнулся с проблемой. Я знал, что это будет невозможно, но думал, что все равно посмотрю. Причина, с которой я сталкиваюсь, это из-за vue-router и ограничений, которые он имеет в режиме истории. Они предлагают установить конфигурацию на стороне сервера, которая перехватывает все URL-адреса, которые могут быть на стороне клиента, и возвращают файл root / index.html для маршрутизации на стороне клиента. И затем еще одна универсальная клиентская сторона, если там нет маршрута. Они не могут объяснить, как вы можете сообщить об отказе сканерам / индексаторам с помощью реального кода состояния. С этим решением вы получите 200 запросов к любому заявителю, даже если страница не найдена.

https://router.vuejs.org/en/essentials/history-mode.html

0 голосов
/ 22 декабря 2010

Вы устанавливаете перенаправление для несуществующих страниц на сервере. У вас не будет страницы для работы в браузере, поскольку запрашиваемая пользователем страница не существует.

В ASP.NET вы можете настроить страницу по умолчанию в разделе customErrors файла web.config следующим образом:

<customErrors mode="RemoteOnly" defaultRedirect="~/error.aspx">
  <error statusCode="404" redirect="notFound.aspx"/>
  <error statusCode="403" redirect="accessError.aspx"/>

...