IE在接收json响应时没有收到数据
我正在运行一个javascript函数,它从其他服务器获取数据并将其返回给另一个函数。在Chrome和Firefox这是工作完美,但在IE浏览器的任何版本(为什么我没有感到惊讶)功能不工作...以下是代码IE在接收json响应时没有收到数据
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)
}
});
}
什么做错了任何想法?
我不会感到惊讶您的问题来自您发送字符串“{}”作为数据的事实。尝试发送一个空的对象,而不是:
data: {}, //no quotes
这是什么意思?对不起......我不明白 – 2013-05-04 17:20:55
在你的ajax配置中,你有数据:“{}”,把它替换为:data:{}, – 2013-05-04 17:22:38
没有什么区别! – 2013-05-04 17:24:22
数据是在阿贾克斯可选..所以,如果你不需要任何信息服务器在您的所有.comment阿贾克斯然后发送没有必要使用它的data
选项
//data="{}";
并确保您以;
关闭脚本结束。
grassification(swings);
//----------^----here
我终于搞清楚了问题所在。首先我添加了一个错误调用来查看它是什么错误。在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中发现任何错误? – bipen 2013-05-04 17:11:53
即没有错误...只是没有数据。如果我确实警觉(摇摆),我会从其他浏览器收到的数据响应除了IE – 2013-05-04 17:20:30