最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - $.getJSON not working in Internet Explorer - Stack Overflow

programmeradmin2浏览0评论

I am using following code to grab data from JSON.

 $(document).ready(function()
 {
   $.getJSON(".php?id=113&out=json", function(data) {

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

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

It works in Mozilla, Chrome and other browser but not in IE. (Not in any Version).

I am using following code to grab data from JSON.

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

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

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

It works in Mozilla, Chrome and other browser but not in IE. (Not in any Version).

Share Improve this question edited May 4, 2019 at 3:43 Cœur 38.7k26 gold badges202 silver badges277 bronze badges asked Apr 25, 2012 at 12:04 user1199138user1199138 10
  • 4 if we could see the JSON result... – gdoron Commented Apr 25, 2012 at 12:05
  • 2 what jquery version and is this link on the domain your script is on? – nanobar Commented Apr 25, 2012 at 12:06
  • 2 Results of adding debug code inside the callback? – Quentin Commented Apr 25, 2012 at 12:07
  • it will display nothing. not even any error. – user1199138 Commented Apr 25, 2012 at 12:07
  • 3 Could be a same origin policy issue, but then it ought to not work in the other browsers if that was the case. Using $.ajax will allow you to set an error: function(x) { } block and then catch the error and look at x.responseText to see if an error is returned. – csharpnumpty Commented Apr 25, 2012 at 12:10
 |  Show 5 more comments

2 Answers 2

Reset to default 18

$.getJSON has a tendency to cache results in IE. Use $.ajax instead.

The related call should be something like this in your case:

// 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); }
});

Make sure you have cache: false.


UPDATE:

It appears to be a configuration issue at the host with the request url that the OP actually uses. Going to the url directly with IE web browser results in an abort from the host. You can't do much than to report the issue to the host, like an email to the webmaster of the host.

I had the same error on a page, and I added these lines :

<!--[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]-->

and it finaly works for me ;) no more error for IE9

This post helps me jQuery Call to WebService returns "No Transport" error

发布评论

评论列表(0)

  1. 暂无评论