所以这个功能适用于IE以外的所有其他浏览器。我只能访问IE 8,所以不能说新版本是否有效。我无法访问PHP或它如何调用SQL DB,所以我不能肯定它是javascript。 IE中不会触发警报。
$.post( 'http://foo/geo/getGeoResultsByGeoId.php', {geoId: 1}, function(data){
alert('inside');
var DBinfo = $.parseJSON(data);
if(DBinfo.data.length == sites.length) {
for (var i=0; i<sites.length; i++) {
sites[i].votesUp = Number(DBinfo.data[i].votesUp);
sites[i].votesDown = Number(DBinfo.data[i].votesDown);
sites[i].mag = getMagnitude(Number(DBinfo.data[i].votesUp), Number(DBinfo.data[i].votesDown));
createGraph(sites[i]);
}
setMarkers(map, sites);
}
});
答案 0 :(得分:1)
在&lt; head
&gt;之后将此行放在您的HTML中标签开始
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
它适用于IE8+
。
除此之外,请不要忘记在$.post
请求中提及数据类型。你可以这样做
$.post(url,
function(){
//your content here
},'dataType')
.fail(function(jqXHR,status)
{
});
dataType 可以是xml
,json
,text
或jsonp
或数据类型的组合。因此,根据您的数据类型选择,它将正常工作。它至少对我有用,不知道我错了吗?
答案 1 :(得分:0)
我预计问题是两个不同成功回调的时机。这应该有效:
$.post( 'http://fooURL/getGeoResultsByGeoId.php', {geoId: 1}, function(data){
alert('inside');
var DBinfo = $.parseJSON(data);
if(DBinfo.data.length == sites.length) {
for (var i=0; i<sites.length; i++) {
sites[i].votesUp = Number(DBinfo.data[i].votesUp);
sites[i].votesDown = Number(DBinfo.data[i].votesDown);
sites[i].mag = getMagnitude(Number(DBinfo.data[i].votesUp), Number(DBinfo.data[i].votesDown));
createGraph(sites[i]);
}
setMarkers(map, sites);
}
});
答案 2 :(得分:0)
如果您的返回数据是JSON并且您提出跨域请求,那么这样的事情如何:
$.ajax({
url: 'http://fooURL/getGeoResultsByGeoId.php?callback=?',
data : {geoId: 1},
dataType : 'JSONP',
success: function(data) {
DBinfo = data;
alert('inside');
if(DBinfo.data.length == sites.length) {
for (var i=0; i<sites.length; i++) {
sites[i].votesUp = Number(DBinfo.data[i].votesUp);
sites[i].votesDown = Number(DBinfo.data[i].votesDown);
sites[i].mag = getMagnitude(Number(DBinfo.data[i].votesUp), Number(DBinfo.data[i].votesDown));
createGraph(sites[i]);
}
setMarkers(map, sites);
}
},
type : 'POST'
});