3

所以这个功能适用于除 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);
     }
});
4

3 回答 3

1

head在 < > 标记开始之后将这一行放在您的 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可以是xmljsontextjsonp数据类型的组合。因此,根据您的数据类型进行选择,它会正常工作。它至少对我有用,不知道我是否错了?

于 2013-08-26T03:53:28.090 回答
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);
    }
});
于 2012-12-21T22:22:05.617 回答
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' 
});
于 2012-12-21T22:22:41.970 回答