2015-07-17 3 views
1

Существует Javascript линия (вы можете попробовать его в консоли браузера)Как получить код состояния страницы перед загрузкой

window.location.href='http://example.com' 

, который будет толкать вас http://example.com

В Браузер (Google Chrome) -> Инструменты разработчика -> Раздел сети, на который вы можете увидеть статус «Состояние» - 200.

Возникает вопрос:

как получить код состояния 200/404/302 прямо перед выполнением

window.location.href='http://example.com' 

Спасибо.

P.S. jQuery подходит для использования.

+5

Вам нужно будет сначала загрузить его с помощью Ajax, и он должен быть включен в один домен или COR. – epascarello

+0

@epascarello имеет правильный ответ здесь, хотя, если вы хотите что-то сделать, когда он недоступен, на этом случае должна быть страница с ошибкой, поданная с сервера. Это не должно быть задачей JS для обеспечения обработки в этом конкретном случае. (Я основываю это на конкретном использовании window.location.href). – Sinistralis

ответ

2

Единственный способ получить код состояния - сделать запрос до того, как вы перейдете туда. Это означает сделать вызов Ajax ресурсу и проверить статус. Единственным недостатком этого является политика одинакового происхождения, поэтому сайты должны находиться в одном домене или им необходимо иметь CORS для вашего ресурса.

1

Код состояния HTTP генерируется сервером, поэтому необходимо выполнить HTTP-запрос на сервер ДО того, как вы можете получить код состояния - так что вам нужно будет выполнить вызов Ajax на URL-адресе - адаптация простой пример в JQuery.get у вас будет что-то похожее;

$.get("http://example.com", function(data) { 
    // Yeahh the URL works, we can do the page switch 
    window.location.href='http://example.com'; 
}); 

Есть и другие примеры в JQuery.get, которая касается обработки и т.д. ошибки, но вы можете прочитать те, для себя.

Из причины, вам не нужно всю страницу, чтобы получить только статус, вы можете выполнить только HTTP-ГОЛОВУ, который вы можете увидеть обсудили here

Со всем этим вы можете столкнуться с кросс-сайт сценариев, которые вы можете исследовать отдельно - на этом уже много вопросов о переполнении стека.

Смежные вопросы