2012-04-25 49 views
8

Tôi đang sử dụng mã sau để lấy dữ liệu từ 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); 
    }); 
}); 

Nó hoạt động trong Mozilla, chrome và trình duyệt khác nhưng không hoạt động trong IE (không có trong bất kỳ phiên bản nào).

+4

nếu chúng tôi có thể thấy kết quả JSON ... – gdoron

+2

phiên bản jquery nào và liên kết này trên miền của bạn có phải là tập lệnh không? –

+3

Lỗi trong giao diện điều khiển JS? ... – binarious

Trả lời

14

$.getJSON có xu hướng cache results in IE. Sử dụng $.ajax để thay thế.

Cuộc gọi có liên quan nên có một cái gì đó như thế này trong trường hợp của bạn:

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

Đảm bảo bạn có cache: false.


UPDATE:

Nó dường như là một vấn đề cấu hình tại các máy chủ với địa chỉ yêu cầu rằng OP thực sự sử dụng. Truy cập url trực tiếp với kết quả trình duyệt web IE bị hủy bỏ khỏi máy chủ. Bạn không thể làm nhiều hơn là báo cáo vấn đề cho máy chủ, chẳng hạn như email tới quản trị viên web của máy chủ lưu trữ.

+0

Tôi sử dụng tính năng này. Có bất kỳ vấn đề '$ .ajax ({ \t \t url: "http://www.xyz.com/data.php?id=113&out=json", \t \t bộ nhớ cache: false, \t \t datatype:" json", \t \t thành công: function (data) { \t \t \t $ .each (data.issue.page, chức năng (i, item) { imagesJSON [i] = item [ "@ thuộc tính"]; \t \t Cảnh báo \t (imagesJSON.chiều dài); }); \t \t lỗi: chức năng (yêu cầu, trạng thái, lỗi) { cảnh báo (trạng thái + "," + lỗi); \t \t } ' –

+0

@ketan: bạn có chắc là bạn đang nhập đúng không? giá trị cho lỗi khóa (đó là hàm mà bạn có) nên nằm bên trong mảng tham số cho hàm '$ .ajax'. – Spoike

+4

Những điều trên cho tôi lỗi trong IE như ** Lỗi, Không vận chuyển ** –

2

tôi đã có lỗi tương tự trên một trang, và tôi đã thêm những dòng này:

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

và nó finaly làm việc cho tôi;) không có lỗi nhiều hơn cho IE9

bài này giúp tôi jQuery Call to WebService returns "No Transport" error

Các vấn đề liên quan