我正在运行一个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)
}
});
}
对于做错了什么?
答案 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给你!