Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 22.12.2010, 13:09
Новичок на форуме
Отправить личное сообщение для ilya.tk Посмотреть профиль Найти все сообщения от ilya.tk
 
Регистрация: 27.11.2010
Сообщений: 5

JQuery AJAX, поймать разрыв соединения
Как, используя JQuery AJAX, отловить отсуствие/разрыв соединения? callback функция error не вызывается, success тоже. Даже timeout не срабатывает. Только firebug пишет в лог ошибку, и номер строки в jquery.
Ответить с цитированием
  #2 (permalink)  
Старый 22.12.2010, 23:35
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

но ведь не было никакого разрыва

а если серьезно, то какая версия браузера? Как мне увидеть эту проблему?
Ответить с цитированием
  #3 (permalink)  
Старый 23.12.2010, 11:37
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN">
<html>
	<head>
		<title>Test</title>
		<meta name="content-type" content="charset=utf-8">
		<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
		<script>
			$(function () {
				$('#button').click(function() {
					$('#div').html( $('#div').html() + "идет загрузка...<br>");
					$.ajax({
						url     : '/',
						type    : 'GET',
						timeout : 5000,
						success : function (j) {
							$('#div').html( $('#div').html() + "успешно :)<br>")
						},
						error   : function (XMLHttpRequest, textStatus, errorThrown) {
							var errtext;
							if(textStatus == 'timeout') {
								errtext = 'ошибка - вышло время ожидания ответа сервера (5 сек.)';
							} else if (XMLHttpRequest.status || XMLHttpRequest.statusText) { 
								//XMLHttpRequest.status || XMLHttpRequest.statusText вылетает без сообщения об ошибке
								errtext = 'ошибка - ' + XMLHttpRequest.status + ' '+ XMLHttpRequest.statusText;
							} else
								errtext = 'ошибка'
							$('#div').html( $('#div').html() + errtext + '<br>')
						}
					});
				});
				
			});
		</script>
	</head>
	<body>
	<button id="button">начать загрузку</button>
	<div id="div"></div>
	</body>
</html>


Видимо дело все таки не в JQuery. FireFox ломается на выражении XMLHttpRequest.status || XMLHttpRequest.statusText без сообщения об ошибке. Происходит это когда сервер погашен. При этом Google Chrome работает, Opera - тоже. FireFox 3.6.12 for Ubuntu.
Похоже придется обернуть XMLHttpRequest.status || XMLHttpRequest.statusText в try
Ответить с цитированием
  #4 (permalink)  
Старый 23.12.2010, 21:14
Новичок на форуме
Отправить личное сообщение для ilya.tk Посмотреть профиль Найти все сообщения от ilya.tk
 
Регистрация: 27.11.2010
Сообщений: 5

Выше - я.
Ответить с цитированием
  #5 (permalink)  
Старый 23.12.2010, 23:49
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от ilya.tk
Выше - я.
я понял, теперь вас двое, а я - один

а как ты эту ошибку вызываешь? У меня получается только когда запрос идет на другой домен
Ответить с цитированием
  #6 (permalink)  
Старый 27.12.2010, 11:13
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Просто погаси сервер, или отключись от интернета. Возможно потребуется очистить кеш. Теперь после нажатия на кнопку "Загрузка" скрипт сообщит "идет загрузка..." и повиснет. Ожидаемого сообщения "ошибка" не возникнет.
Ответить с цитированием
  #7 (permalink)  
Старый 27.12.2010, 15:30
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

у меня ff 3.6.13, jquery-1.4.4, error срабатывает

<!doctype html>
<html>
<body>
<div></div>
<a href="#">link</a>
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript">
    $('a').click(function(){
        $.ajax({
            'url': '2.html',
            'method': 'get',
            'success': function(){ alert('success'); },
            'error': function(){ alert('error'); },
            'complete': function(){ alert('complete'); },
        })
    });
</script>
</body>
</html>
Ответить с цитированием
  #8 (permalink)  
Старый 27.12.2010, 18:10
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Цитата:
FireFox ломается на выражении XMLHttpRequest.status || XMLHttpRequest.statusText без сообщения об ошибке. Происходит это когда сервер погашен. При этом Google Chrome работает, Opera - тоже. FireFox 3.6.12 for Ubuntu.
Похоже придется обернуть XMLHttpRequest.status || XMLHttpRequest.statusText в try
Дело именно в XMLHttpRequest.status || XMLHttpRequest.statusText. По непонятным причинам FireFox ломается на этом коде без сообщения об ошибке.
Спасает заключение XMLHttpRequest.status || XMLHttpRequest.statusText в try.
Ответить с цитированием
  #9 (permalink)  
Старый 28.12.2010, 04:43
Аватар для x-yuri
Отправить личное сообщение для x-yuri Посмотреть профиль Найти все сообщения от x-yuri
 
Регистрация: 27.12.2008
Сообщений: 4,201

Сообщение от Logo
По непонятным причинам FireFox ломается на этом коде без сообщения об ошибке.
что значит ломается? Выложи тестовый код с XMLHttpRequest.status, XMLHttpRequest.statusText
Ответить с цитированием
  #10 (permalink)  
Старый 28.12.2010, 10:20
Аспирант
Отправить личное сообщение для Logo Посмотреть профиль Найти все сообщения от Logo
 
Регистрация: 15.03.2008
Сообщений: 91

Ну вот же он http://javascript.ru/forum/showthrea...5478#post84887
Ошибка в 22 строке, перед комментарием
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
jQuery ajax отправка запроса в htpps vova_b jQuery 19 07.03.2013 18:20
jQuery Click() не работает на объекте, созданном Ajax vovabigov jQuery 13 09.09.2012 14:25
Jquery + Ajax Alla jQuery 1 04.10.2010 06:04
Не работает jQuery меню с AJAX eugene1986 jQuery 0 08.07.2010 18:49
При наборе адреса с www не работает AJAX (JQuery)! madmis AJAX и COMET 3 23.11.2009 19:03