IE在接收json响应时没有收到数据

时间:2013-05-04 17:08:14

标签: jquery json

我正在运行一个javascript函数,它从休息服务器获取数据并将其返回给另一个函数。在Chrome和Firefox上这是完美的工作,但在任何版本的IE(为什么我不惊讶)该功能不起作用...下面是代码

function getTotalCounts() {
    var swings = '';
    var serviceUrl = 'http://urldata.com/getdata';
    $.ajax({
        type: "GET",
        cache: false,
        contentType: "application/json; charset=utf-8",
        url: serviceUrl,
        data: "{}",
        async: false,
        dataType: "json",
        success: function (data) {
            jQuery.each(data.InteractiveBlockList, function (i, val) {
                swings = new Array(val.ActivationDay, val.GrassBlockCount, val.GrassSquareMeters, val.InstagramCount, val.PublicTweetCount, val.SwingCount);
                var gettotalcounts;
            });
            grassification(swings)
        }
    });
}

对于做错了什么?

3 个答案:

答案 0 :(得分:0)

我不会感到惊讶,因为您发送字符串“{}”作为数据。尝试发送一个空对象:

data: {}, //no quotes

答案 1 :(得分:0)

数据在ajax中是可选的..所以如果你不需要向服务器发送任何信息,那么就不需要在all.com上使用你的ajax data选项

 //data="{}";

并确保以;结束脚本结束。

grassification(swings);
          //----------^----here

答案 2 :(得分:0)

我终于找出问题所在。首先,我添加了一个错误调用,以查看它是什么错误。在Chrome / Firefox中没有错误,在IE中我得到了“没有传输错误”。经过一段谷歌搜索后发现问题是由于跨域脚本编写,这个博客提供了更好的解释http://mike-ward.net/blog/post/00660/force-jquery-1-5-to-always-allow-cross-site-scripting

在进行ajax调用之前添加jQuery.support.cors = true;修复了问题。奇怪的是它完全拒绝在所有版本的IE上工作,但那就是IE给你!