$.getJSON не работает в IE

Я использую следующий код для захвата данных из JSON.

 $(document).ready(function()
 {
   $.getJSON("http://www.xyz.com/data.php?id=113&out=json", function(data) {

        $.each(data.issue.page, function(i,item) {
            imagesJSON[i] = item["@attributes"];
        });

       alert(imagesJSON.length);
    });
 });

он работает в Mozilla, chrome и других браузерах, но не в IE.(Не в любой версии).

2 ответов


$.getJSON имеет тенденцию к кэш результатов в IE. Использовать $.ajax.

связанный вызов должен быть чем-то вроде этого в вашем случае:

// Not really sure if you've forgot to var 
var imagesJSON = [];

$.ajax({
  url: "www.example.com/data.php?id=113&out=json",
  cache: false,
  dataType: "json",
  success: function(data) {
    $.each(data.issue.page, function(i,item) {
        imagesJSON[i] = item["@attributes"];
    });

    alert(imagesJSON.length);
  },
  error: function (request, status, error) { alert(status + ", " + error); }
});

убедитесь, что у вас есть cache: false.


обновление:

похоже, что проблема конфигурации на хосте с url-адресом запроса, который фактически использует OP. Переход к url-адресу напрямую с помощью веб-браузера IE приводит к аборт от носителя. Вы не можете сделать больше, чем сообщить о проблеме хосту, например, по электронной почте веб-мастеру хоста.


У меня была такая же ошибка на странице, и я добавил Эти строки :

<!--[if lte IE 9]>
<script type='text/javascript' src='//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.0/jquery.xdomainrequest.min.js'></script>
<![endif]-->

и это окончательно работает для меня ;) больше нет ошибки для IE9

этот пост помогает мне вызов jQuery в WebService возвращает ошибку "нет транспорта"