0

我正在运行一个 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)
        }
    });
}

知道做错了什么吗?

4

3 回答 3

0

我终于弄清楚问题是什么了。首先,我添加了一个错误调用以查看它是什么错误。在 Chrome/Firefox 中没有错误,在 IE 中我得到一个“没有传输错误”。经过一番谷歌搜索后发现问题是由于跨域脚本造成的,这个博客给出了更好的解释http://mike-ward.net/blog/post/00660/force-jquery-1-5-to-always -允许跨站点脚本

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

于 2013-05-05T09:24:21.560 回答
0

data 在 ajax 中是可选的。所以如果你不需要向服务器发送任何信息,那么根本不需要使用它。评论你的 ajaxdata选项

 //data="{}";

并确保以 . 结尾的脚本结束;

grassification(swings);
          //----------^----here
于 2013-05-04T17:27:56.080 回答
0

我不会对您的问题来自您发送字符串“{}”作为数据这一事实感到惊讶。尝试发送一个空对象:

data: {}, //no quotes
于 2013-05-04T17:17:48.370 回答