Мога ли да променя HTML кода на състоянието на страницата от страна на клиента?

Имам статична HTML уеб страница и искам да задам нейния код за състояние на 404 „Не е намерено“.

Но искам да направя това с помощта на javascript или jQuery, а не на език от страна на сървъра.

Как мога да направя това на клиента? С javascript или може би с <meta> таг?


person Community    schedule 22.12.2010    source източник
comment
Каква е целта на това? Мразя 404, така че когато има налична страница, радвайте се!   -  person Marcel Korpel    schedule 22.12.2010
comment
Опитвам се да направя това в javascript, защото е интересно и повече, когато ограничението е зададено само на javascript   -  person    schedule 22.12.2010
comment
Не е интересно, безсмислено е. 404 означава, че това нещо, което сте поискали чрез HTTP, не съществува. Има смисъл само като част от заглавка на HTTP отговор.   -  person Quentin    schedule 22.12.2010
comment
Мога да си представя, че на сайт с една страница, занимаващ се с REST ситуация, която не се поддържа, бихте искали да направите нещо като настройка на 404 и да очаквате браузърът да се справи с поведението 404 по подразбиране. Въпреки това трябва да се съглася с Марсел, че можете да се справите със ситуацията, защото можете да покажете персонализирана (генерирана от клиента javascript) страница 404, помагайки на вашите потребители да се върнат към правилния поток на вашия сайт.   -  person Jos    schedule 10.12.2013


Отговори (5)


Невъзможно е да зададете кода на HTTP отговор чрез програмиране от страна на клиента.

person Quentin    schedule 22.12.2010

Мисля, че смисълът зад това упражнение е следният: искате да заредите страница, която показва персонализирано съобщение за грешка на вашите потребители. В същото време искате да кажете на вашия Google Search Appliance (или подобни системи), че исканата страница трябва да бъде изтрита от индекса. Имам същия проблем, когато скриптове от страна на сървъра не могат да бъдат вградени. Все още не съм намерил решение от страна на клиента.

person Community    schedule 03.01.2012
comment
Използвайте това вместо това: <meta name="robots" content="noindex" /> - person Tharkon; 03.12.2014

Можете да пренасочите страницата към несъществуваща в JavaScript. Нямам представа защо бихте искали да направите това, но хей, хо:

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

Но Дейвид е прав, няма начин да се зададе статус на ТОЗИ страници, тъй като това е скрипт от страна на клиента.

person Tom Gullen    schedule 22.12.2010

Задавате пренасочване за несъществуващи страници на сървъра. Няма да имате страница, с която да работите в браузъра, тъй като страницата, която потребителят е поискал, не съществува.

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

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

person Chris Love    schedule 22.12.2010

В момента съм изправен пред проблем. Знаех, че няма да е възможно, но все пак реших да го погледна. Причината, поради която се сблъсквам с това, е поради vue-router и ограниченията, които има в режим на история. Те предлагат задаване на конфигурация от страна на сървъра, която улавя всички URL адреси, които биха могли да бъдат маршрутизирани от страна на клиента, и връщане на root/index.html, за да поеме маршрутизирането от страна на клиента. И след това друга клиентска страна за улавяне на всичко, ако маршрутът не съществува там. Това, което те не успяват да обяснят, е как можете да докладвате такъв пропуск на роботи/индексатори с истинския код на състоянието. С това решение вие ​​просто получавате 200s за всички заявители, въпреки че страницата не е намерена.

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

person benmccallum    schedule 07.12.2017