2012-12-21 31 views
3

所以這個功能除了IE以外的其他瀏覽器上運行。我只能訪問IE 8,所以不能說新版本是否工作。我沒有訪問PHP或它是如何調用SQL DB的,所以我不能肯定地說它是JavaScript。警報永遠不會在IE中觸發。jQuery的崗位在IE 8不工作或更早

$.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); 
    } 
}); 
+2

爲什麼你有2個成功的功能? –

+0

正如@wirey所述,如果您使用回調,則不需要.success(),因爲回調本質上是一個.success()。選擇一個或另一個。 – kennypu

+1

@kennypu:聽起來像是一個答案,我.... –

回答

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); 
    } 
}); 
+0

抱歉,這雙重成功只是從我留下的基本上是試圖予取予求得到它工作。一切成功都是同樣的問題。 – user1310774

0

如何這樣的事情,而是如果你回來的數據是JSON和你做跨域請求:

+0

對不起,我的基本任何事情都是爲了讓它順利運作而取得雙倍的成功。一切成功都是同樣的問題。 – user1310774

+0

@ user1310774你是否嘗試過我更新的答案? – PhearOfRayne

+0

@ user1310774你還可以提供一個**樣本**的JSON解析? – PhearOfRayne

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可以xmljsontext,或者jsonp或數據類型的組合。所以,根據你的數據類型選擇,它會正常工作。它至少對我起作用,不知道我是否錯了?