Проверка доступности сервера перед переходом по ссылке

12
A
На сайте с 18.10.2007
Offline
125
#11
siv1987:
Ну тогда юзайте как подсказали выше синхронный запрос


var link = $(this).attr('href');
var ret = true;
$.ajax({
url: link,
async: false,
complete: function(q){
if(q.status != 200){
ret = false;
}
}
});
return ret;

Спасибо, этот вариант работает.

Милованов Ю.С:


Попробуйте это:
...

Еще раз посмотрел код(то что я написал: не правильно!) и поржал:D
http://xmlhttprequest.ru (начиная с "Асинхронный XMLHttpRequest"). Найдите 1 отличие называется. Не найдете - утром скажу;)

Если я правильно понял, синхронный запрос выполняется последовательно и в вашем примере на основе моего кода нет никаких инструкций, которые браузер должен выполнить после получения ответа от сервера. Т.е. по сути надо перенести блок блок с условием с позиции "до запроса" на позицию "после запроса", т.е. рабочий код должен выглядеть примерно так:

<script type="text/javascript">
$(document).ready(function() {
$('body').on('click', 'a', function() {
var link = $(this).attr('href');
xhttp = new XMLHttpRequest();
xhttp.open('GET', link, false);
xhttp.send();
if (xhttp.readyState == 4 && xhttp.status !== 200) {
return false;
}
});
});
</script>

Как собственно, было написано во втором сообщении этой темы)

Только те, кто предпринимают абсурдные попытки, смогут достичь невозможного.
Милованов Ю.С
На сайте с 24.01.2008
Offline
196
#12

10 плюсов:)

Подпись))
12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий