Кастомная ошибка 404 без сервера - PullRequest
0 голосов
/ 28 апреля 2009

Возможно ли перехватить ошибку 404 без использования веб-сервера (просмотр html-файла в файловой системе)?

Я пытался с некоторым JavaScript, используя скрытый iframe, который предварительно загружает страницу назначения и проверяет результат, а затем вызывает пользовательскую ошибку или перенаправляет на правильную страницу.

Это отлично работает, но не очень хорошо по производительности.

Ответы [ 3 ]

5 голосов
/ 28 апреля 2009

Ошибка 404 - это ответ о статусе HTTP. Поэтому, если вы не пытаетесь получить этот файл с помощью HTTP-запроса / ответа, у вас не может быть подлинной ошибки 404. Вы можете имитировать только один из них так, как вы предлагаете. Любой «стандартный» способ обработки ошибки 404 в любом случае зависит от вашего вида веб-сервера ...

1 голос
/ 28 апреля 2009

404 - это код ответа HTTP, и как таковой он доставляется только по протоколу HTTP серверами, которые говорят на нем. Расширение file: // не является реальным ответом протокола как таковым, это хак, встроенный в клиенты (например, браузеры), которые включают поддержку локальных файлов, однако сами браузеры / клиенты сами могут определить, предоставляют ли они коды ответов из своего файла: // реализация. Теоретически они могли бы сообщать о них в DOM, например, но они были бы кодами ответов, выставленными им самим, и, как таковые, редко применялись. Большинство не делает, и нет стандартного способа для этого. Вы можете заглянуть в расширения браузера, такие как Firefox, и посмотреть, поддерживают ли они его, но тогда это весьма нестандартно и, скорее всего, сломается, если вы загрузите его в Интернет.

1 голос
/ 28 апреля 2009

Почему вы не хотите использовать сервер?

Я не верю, что возможно обработать ошибку 404 на стороне клиента, потому что ошибка 404 - на стороне сервера .

Всякий раз, когда вы загружаете веб-страницу, вы отправляете запрос на сервер. Таким образом, когда вы запрашиваете файл, которого там нет, именно сервер обрабатывает ошибку. Обычные HTML / CSS / JavaScript появляются только тогда, когда сервер отправляет ответ, сообщающий, что не может найти файл.

Steve

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...