为什么这个Ajax请求在IE中不起作用?

时间:2012-07-05 14:26:18

标签: jquery ajax

我有以下JQuery AJAX请求,它在Chrome中运行良好但是当我在IE中测试时,它会返回undefined

$.ajax({
    url : 'http://pipes.yahoo.com/pipes/pipe.run?_id=26650603c42f41d78bfb5c5c740747d3&_render=json&_callback=?',
    dataType : 'xml',
    complete : function(data) {
        console.log(data.responseText);
    }
});

2 个答案:

答案 0 :(得分:1)

你是否尝试过这样:

 $(document).ready(function(){
    $.ajax({
        url : 'http://pipes.yahoo.com/pipes/pipe.run?_id=26650603c42f41d78bfb5c5c740747d3&_render=json&_callback=pipeCallback', 
        dataType : 'jsonp',
        complete : function(data) {
            //alert(data.responseText);
            //console.log(data.value);
        },
         error: function (xhr, status, error) {
                alert(error);
            }
    });
});
function pipeCallback(d){
    data = d;
    //console.debug(d);
    var arts = d.value.items;
    for (var i=0; i<arts.length; i++)
    {
    var a = document.createElement("a");
    a.setAttribute("href", arts[i].link);
    a.innerHTML = "<h1>" + arts[i].title + "</h1>"
    var dv = document.createElement("div");
    dv.innerHTML = arts[i].description;
    document.body.appendChild(a);
    document.body.appendChild(dv);
    }   
}

刚刚测试过它工作正常 也可以摆脱 console.log 调用,如果开发人员工具没有打开它就无法在IE中工作。

答案 1 :(得分:0)

这似乎是浏览器安全设置的问题:

Internet Explorer只是不允许CORS(至少在-IE7中)作为安全问题。然而,IE8 +似乎能够做XDR。