Задать вопрос
buna1991
@buna1991

IE9 и AJAX....?

$.ajax({<br>
                url: '/engine.htm',<br>
                type: "POST",<br>
                cache: false,<br>
                data: "querytype=auth",<br>
                dataType : "xml",<br>
                error: function(xml){<br>
                    alert('ajax error');<br>
                },   <br>
                success: function(xml){<br>
                    alert('ajax ok');<br>
                }       <br>
});<br>




Очень странно себя ведет, при отправке с IE9 на сервере 90% ответов вообще не приходит (нету error и нету success), при отправке на локальном сервере который обрабатывает php со скриптом curl ответ получаю мгновенно.



<?php<br>
    header("Content-Type: text/xml");<br>
    $curl = curl_init();<br>
    curl_setopt($curl, CURLOPT_URL, 'http://этот-сервер/engine.htm');<br>
    curl_setopt($curl, CURLOPT_HEADER, 0);<br>
    curl_setopt($curl, CURLOPT_POST, 1);<br>
    curl_setopt($curl, CURLOPT_TIMEOUT, 5);<br>
    curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);<br>
    curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($_POST));<br>
    echo $res = curl_exec($curl);<br>
?><br>




остальные браузеры нормально работают.



Вот шапка ответа от сервера взятая из хрома



Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0<br>
Content-Type:text/xml<br>
Expires:-1<br>
Keep-Alive:timeout=5, max=99<br>
Pragma:no-cache<br>




Вот шапка ответа от локального сервера взятая из хрома



Connection:Keep-Alive<br>
Content-Length:60<br>
Content-Type:text/xml<br>
Date:Fri, 01 Feb 2013 14:21:21 GMT<br>
Keep-Alive:timeout=5, max=100<br>
Server:Apache/2.2.2 (Win32) PHP/5.3.5<br>
X-Powered-By:PHP/5.3.5<br>




Пробовал $.post и даже XMLHttpRequest
  • Вопрос задан
  • 5791 просмотр
Подписаться 2 Оценить 1 комментарий
Решения вопроса 1
@theaspin
А логи сервера что говорят по поводу этих запросов? Пробовали запрашивать через AJAX обычные файлы, а не скрипты, эффект сохраняется?
Ответ написан
Пригласить эксперта
Ответы на вопрос 7
@quozd
посмотрите какой запрос уходит из IE через тот же Fiddler или HttpAnalyzer
Ответ написан
LegoMushroom
@LegoMushroom
дело в том что у IE проблемы с парсингом xml

jeremyhixon.com/jquery-ajax-internet-explorer/

надеюсь помог
Ответ написан
Violetdrug
@Violetdrug
Думаю дело в версии JQ. Уже сталкивался с подобным. Пополобуйте использовать более познюю версию или делать запросы на чистом JS
javascript.ru/node/69
Ответ написан
LegoMushroom
@LegoMushroom
попробуйте указать async: true

$.ajax({
                async : true,
                url: '/engine.htm',
                type: "POST",
                cache: false,
                data: "querytype=auth",
                dataType : "xml",
                error: function(xml){
                    alert('ajax error');
                }   
                success: function(xml){
                    alert('ajax ok');
                }       
});
Ответ написан
sdevalex
@sdevalex
У ие были проблемы с HTTP кодами состояний, в данном случае 200 отдается или другой?
Ответ написан
Finom
@Finom
Попробуйте еще больше локализовать проблему: потестируйте в других версиях осла (или хотя-бы во встроенных IE X Mode, список которых появится по нажатию на F12 вверху панели). Попробуйте локально сэмулировать работу удаленного сервера, отдавая аналогичные заголовки. Попробуйте заюзать прокси (обычный серверный скрипт, отдающий содержимое удаленного сервера). Поменяйте POST на GET.

Проблемы с ослом решаются методом тыка, иначе — редко.
Ответ написан
Комментировать
@alvik48
Frontend & Node.js developer
Я, конечно, видел строчку url: '/engine.htm', но все же спрошу — скрипт, к которому обращаетесь по ajax, доступен на том же домене, откуда его запрашиваете?

Был опыт — отправлял запрос на скрипт, расположенный на другом домене, везде работало, а в ie9 — нет. Это у них такая политика безопасности.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы