Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > JavaScript, Ajax
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.08.2010, 15:42   #1
dronsapun
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 12
По умолчанию AJAX не работает в IE

Здравствуйте, я написал скрипт с использованием аякса anweber.com / doc / sport.php, В FF и опере нормально работает, а с IE8 (в других IE не знаю) нормально работает только у себя на локальном сервере. На виртуальном хостинге в IE8 не хочет работать. Причину вроде бы нашел:

var text = http.responseText; // здесь глюк

на этой строчке перестает работать.
Подскажите пожалуйста, как можно исправить? В настройках сервера пробовал менять настройки, но это ничего не дало. Может в .htaccess что-то нужно написать? Заранее большое спасибо.

Последний раз редактировалось SkyM@n; 20.08.2010 в 17:29.
dronsapun вне форума Ответить с цитированием
Старый 21.08.2010, 17:52   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

Обычно, если делать с помощью jQuery, то таких проблем не возникает. Работает во всех основных браузерах.
Кроме этого, показывает ли какую-то ошибку?? Если да, то какую? Может, у вас данные пробуют передаваться между 2 доменами?
motorway вне форума Ответить с цитированием
Старый 21.08.2010, 19:13   #3
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

А что говорит парсер и firebug?
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.08.2010, 13:04   #4
dronsapun
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 12
По умолчанию

Я только изучаю JavaScript и затрудняюсь пока ответить какая ошибка и как их находить. Отладку делал алертами, знаю где прекращается работа функции, но почему она прекращается не знаю (еще раз, это происходит только в браузере IE8 и только на виртуальном хостинге).

Работает так: После загрузки документа вызывается функция в которой создаем ajax-объект и вызываем файл sportpars.php который парсит спортивный сайт и возвращает строку, например такую:

TR:Волейбол. Женщины. Мировой Гран-При. КитайTM:11:45K1:КитайK2:СШАSC:0:1 (20:25, 2:2)TR:Волейбол. Женщины. Мировой Гран-При. ЯпонияTM:12:00K1:ЯпонияK2:Голландия SC:0:0 (1:5)

вот функция эта:
Код:
function showContent(link) {
	var cont = document.getElementById('contentBody');
	var http = createRequestObject();				// создаем ajax-объект
	if( http ) {
		http.open('get', link + '&r='+Math.random());	// инициируем загрузку страницы	(добавляем параметр чтобы не мешал кеш браузера)
		http.onreadystatechange = function () {	// назначаем асинхронный обработчик события
			if(http.readyState == 4) {
				var result = '';
				var text = http.responseText;	// здесь глюк

// далее идет обработка строки, вытаскиваются данные из этой строки и формирует HTML-код и записывается в result

cont.innerHTML = result;
			}
		}
	http.send(null);
	} else {
	document.location = link;	// если ajax-объект не удается создать, просто перенаправляем на адрес
	}
Эта функция соответственно вызывается через какое-то время, например, через 20 сек.

Так создается ajax-объект:
Код:
function createRequestObject() {
	try { return new XMLHttpRequest() }
	catch(e) {
		try { return new ActiveXObject('Msxml2.XMLHTTP') }
		catch(e) {
			try { return new ActiveXObject('Microsoft.XMLHTTP') }
			catch(e) { return null; }
		}
	}
}
Работать перестает на строчке
var text = http.responseText;

Какие могут быть варианты? Почему на виртуальном хостинге это не работает в IE8 если работает в FF и Опере, на локальном сервере же все нормально?
dronsapun вне форума Ответить с цитированием
Старый 22.08.2010, 17:55   #5
Виталий Желтяков
Старожил
 
Аватар для Виталий Желтяков
 
Регистрация: 19.04.2010
Сообщений: 2,702
По умолчанию

Возможно ошибка в кодировках. Что получает сервер?
Виталий Желтяков вне форума Ответить с цитированием
Старый 22.08.2010, 18:41   #6
dronsapun
Пользователь
 
Регистрация: 29.09.2009
Сообщений: 12
По умолчанию

Цитата:
Сообщение от Виталий Желтяков Посмотреть сообщение
Возможно ошибка в кодировках. Что получает сервер?
Спасибо! Нашел! Точно, это из-за кодировки, нужно было прописать в файле sportpars.php строку:
Код:
header("Content-Type: text/html; charset=windows-1251");
Кстати, у кого есть IE6 или IE7, скажите пожалуйста нормально в них работает или нет, а то у меня восьмой, я не могу посмотреть.
dronsapun вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
AJAX prizrak1390 Свободное общение 10 08.06.2010 16:01
AJAX Namolem Помощь студентам 1 08.02.2010 22:40
Ajax и сессии ADSoft PHP 7 23.01.2009 17:10
ajax скрипт. Строка загрузки не верно работает alldmc PHP 3 21.01.2009 15:38