Jquery帖子在IE 8或更早版本中不起作用

时间:2012-12-21 22:12:10

标签: internet-explorer jquery post internet-explorer-8

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

3 个答案:

答案 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 可以是xmljsontextjsonp或数据类型的组合。因此,根据您的数据类型选择,它将正常工作。它至少对我有用,不知道我错了吗?

答案 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' 
});