Подтвердить что ты не робот

Получить текущий статус http-страницы из javascript

Есть ли способ получить статус http текущей веб-страницы из javascript?

Потратил некоторое время на поиск в Интернете, но совсем не повезло... Кажется, что это невозможно, но я хотел уточнить у Кару, возможно, какой-нибудь причудливый обходной путь.

(Предоставление его с сервера как части тела ответа неприемлемо, статус должен быть доступен только через заголовок http)

4b9b3361

Ответ 1

Это никоим образом не возможно, извините.

Ответ 2

вы можете проверить статус загрузки страницы попробуйте: var x = document.readyState; Результатом x может быть: Одно из пяти значений:

uninitialized - Has not started loading yet
loading - Is loading
loaded - Has been loaded
interactive - Has loaded enough and the user can interact with it
complete - Fully loaded

Ответ 3

Да, если вы управляете серверными сценариями.

Я только что столкнулся со сценарием, в котором я не хочу, чтобы моя платформа Image Manager загружалась (содержимое страницы - HTTP 404) для проекта, над которым я работаю. Мне нужно только ссылаться на данные JSON, загружаемые при каждой загрузке страницы (запросы Web 1.0 или Web 3.0); Я должен использовать только следующее:

if (JSON.parse(id_(push_current_id()+'_json').textContent).http == 200) {}

Однако большинству людей не везет, чтобы либо иметь время для создания своей собственной системы, либо копаться в дико запутанном коде того, что они застряли. В этих случаях, если вы используете PHP, вы можете взглянуть на PHP headers_list.

Если второй вариант не является жизнеспособным, то следующим подходом было бы определить, достаточно ли компетентна ваша CMS/CRM, чтобы определить, является ли запрошенный URL-адрес HTTP 200, 404, 500 и т.д. В противном случае, если вы используете их программное обеспечение для управляйте бизнесом, а конкуренты - это единомышленники, которые могут просто ссылаться на тысячи несуществующих страниц, ваша система вернет HTTP 200 для всех из них, и тогда вы сильно пострадаете в поисковых системах. Так что в этом сценарии я узнаю, как получить доступ к вашему программному HTTP и затем использовать его для вывода в объект JavaScript Number.

JavaScript AJAX HTTP Status

var xhr = new XMLHttpRequest();
xhr.open(method,url,true);
xhr.send(null);

xhr.onreadystatechange = function()
{
 if (xhr.readyState=='4') {console.log(xhr.status);}
}

Если вы не используете мою платформу или приличную CMS/CRM, единственное, что вам остается, это то, что вы можете избежать необходимости полагаться на то, что запрос AJAX - это то, от чего вы зависите, однако (по крайней мере, с моей точки зрения) вы ' скорее всего, для выполнения запроса Web 2.0 полагается на HTTP-статус запроса Web 1.0. Большинство систем, даже наполовину приличных, будут иметь много несоответствий, потому что программное обеспечение похоже на ребенка, и у большинства программ нет двух постоянных первоначальных родителей. На данный момент вы вынуждены переоценить: стоит ли эта проблема моего времени? Если да, то могу ли я бессмысленно продолжать использовать это программное обеспечение или посвятить себя поиску альтернатив?

И наконец, для тех, кто готов приложить максимум усилий: отстаивать требования стандартов для реализации JavaScript API. Тем не менее, это должно быть очень просто, так как человеку, который постоянно сталкивается с вершинами имеющихся в настоящее время возможностей веб-программного обеспечения, я рекомендую умерить одни ожидания: в органах стандартизации достаточно некомпетентных людей (есть много очень компетентных и увлеченных людей также) которые находятся на руководящих/руководящих должностях, что вы попадете на политическую волю. Я не говорю, что этого не произойдет, хотя даже для чего-то такого простого не ожидай чуда.

Удачи!

Ответ 4

Это не красиво, но вы можете использовать

t = jQuery.get(location.href).success(function (){console.log(t.status)}).error(function(){console.log(t.status)})