Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Не работает ajax от jQuery в IE (https://javascript.ru/forum/misc/43079-ne-rabotaet-ajax-ot-jquery-v-ie.html)

EvgLuch 02.12.2013 01:40

Цитата:

Сообщение от Rise (Сообщение 283259)
EvgLuch, много дублей всего чего только можно, зачем несколько php, оптимизируйте код.

Думаете, причина проблемы с IE в не корректно написанном коде?

EvgLuch 04.12.2013 05:23

Для эксперимента убрал всё "большое" с кода и оставил минимум: html, css, собственно сам jQuery, php-скрип с запросом текущего времени (с секундами) и js-скрипт с функцией setTimeout, который раз в секунду берёт данные с php и вставляет их в див html.
Ситуация такая же! В IE 8,9,10 обновления простейшего таймера не происходит (в див загружаются данные единыжды и на этом всё встаёт), а в остальных браузерах скрипты успешно работают!

Скрипт в файле js для загрузки файла php:

setTimeout(function() {
updateInfo();
}, 1000);

function updateInfo()
{
$.ajax({
type: "GET",
url: "time_server.php",
success: function(data){$('#timeServer').html('Server Time: ' + data)}
});
};

Скрипт в файле php для получения текущего времени:

<?php
echo date("H:i:s");
?>


В чём может быть загвоздка? :help:

EvgLuch 04.12.2013 08:17

Ок. Эту проблему решил: указал вместо типа GET тип POST. Теперь понятно: IE не любит GET, а любит POST. :)

А как теперь основной код, где используется getjson перевести в POST? Кто-нибудь сталкивался с такой задачей?

Maxmaxmaximus3 04.12.2013 19:07

Цитата:

Сообщение от EvgLuch
Думаете, причина проблемы с IE в не корректно написанном коде?

я думаю да, из-за некорректно написанного кода ты наткнулся на какой-то баг который обычные браузеры худо бедно переварили, а ишак заступорился. так часто бывает.

EvgLuch 05.12.2013 01:55

Цитата:

Сообщение от Rise (Сообщение 284447)
так и должно быть setTimeout в твоем случае отработывает один раз через 1 секунду и всё
это не так...

Но ведь во всех браузерах, кроме IE, setTimeout работает как часы - не прерывно посекундно обновляется таймер? Почему в IE так не происходит, почему там один раз всего загрузка происходит?

EvgLuch 05.12.2013 01:57

Цитата:

Сообщение от Rise (Сообщение 284450)
function updateInfo() {
	$.ajax({
		type: "GET",
		url: "time_server.php",
		success: function(data) {
			$('#timeServer').html('Server Time: ' + data);
			setTimeout(updateInfo, 1000);
		}
	});
};
updateInfo();

Аналогично. Начинает нормально работатать, только если (и в моём и в твоём варианте) GET менять на POST.

EvgLuch 05.12.2013 07:55

Цитата:

Сообщение от Maxmaxmaximus3 (Сообщение 284561)
я думаю да, из-за некорректно написанного кода ты наткнулся на какой-то баг который обычные браузеры худо бедно переварили, а ишак заступорился. так часто бывает.

Может быть, но тогда почему всё так же не работает, если я упрощаю код до минимума, оставив лишь time.php (время сервера) и get_time.js (загрузка этого пхп и обновление его раз в секунду)? А начинает норм работать, только если меняю GET на POST.


Часовой пояс GMT +3, время: 19:39.