IE8上的JQuery访问被拒绝&来自服务器的IE9

时间:2014-01-24 20:56:55

标签: jquery html ajax internet-explorer-8

我有以下代码

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
</head>
<body>

<button id="btn1">Get JSON data</button>
<div></div>

<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>

<script>
$(document).ready(function(){
    $.support.cors = true;
  $("#btn1").click(function(){

    //$.getJSON("https://graph.facebook.com/LavanReddy",function(result,textStatus,jqXHR){
    //  $.each(result, function(key, value){
    //   $("div").append(key+": "+value+"<br />"); 
    //  });
    //}).fail(function(xhr, status, error)  
    //{
    //  alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
    //});
    $.ajax({
        type: 'GET',
        url: 'https://graph.facebook.com/LavanReddy',                       
        contentType: "application/json; charset=utf-8",                 
        dataType: 'json',                   
        success: function(result) { 
            $.each(result, function(key, value) {
                $("div").append(key+": "+value+"<br />"); 
                });
        },
        error: function(xhr, status, error) {
                alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
        }
    });                                     

  }); 

});
</script>
</body>
</html>

我尝试使用getJSON和Ajax(没有运气)。 它适用于本地的所有浏览器。但在服务器上它只适用于chrome,firefox和IE10,但不适用于IE8或IE9 Plz帮助

2 个答案:

答案 0 :(得分:1)

我在StackOverflow上搜索了一下你的问题,我认为我找到了一个解决方案。

Ajax Requests to Facebook graph not working on IE

似乎是IE或其他东西的JSON处理问题。只需将?callback=?作为参数添加到查询中,以强制使用JSONP而不是纯JSON。

您的代码应如下所示:

$.ajax({
     type: 'GET',
     url: 'https://graph.facebook.com/LavanReddy/?callback=?',                       
     contentType: "application/json; charset=utf-8",                 
     dataType: 'json',                   
     success: function(result) { 
         $.each(result, function(key, value) {
             $("div").append(key+": "+value+"<br />"); 
         });
     },
     error: function(xhr, status, error) {
             alert('Error: ' + status + '\nError Text: ' + error + '\nResponse Text: ' + xhr.responseText);
     }
});

我附上截图来证明:

Code working on IE

我的IE版本是9.我无法在其他版本中测试它,但我希望它有效。

快乐的编码!

答案 1 :(得分:0)

至少使用jQuery 1.5版,只需在页面中包含jquery.xdomainrequest.min.js脚本,然后像往常那样进行AJAX调用

https://github.com/MoonScript/jQuery-ajaxTransport- XDomainRequest/blob/master/jquery.xdomainrequest.min.js