2014-10-08 31 views
0

在這裏有一個特殊的。JSON掛起javascript,但只有特定的一個

得到了一塊JavaScript,要求一堆數據。

,詢問此信息的功能是:

onRegionClick: function(e, code){ 
     var mapKeyUrl = "/GenMap/getcountry/jsonchk" 
     $.getJSON(mapKeyUrl, { 
      regsel: regsel, 
      countryiso: code 
     }) 
     .done(function(countrydata) { 
      document.getElementById("maptext").innerHTML = "You are a " + countrydata.countryname; 

     }) 
    } 

如果我點擊地圖上的東西,它掛起。 因此試圖將JSON請求更改爲返回的數據較少但格式相同的另一個函數。 工程就像一個魅力。 如果我在Web瀏覽器中訪問相同的請求。 jsonchk返回:

{ 
    "country":[ 
     { 
     "ccode":"ID" 
     }, 
     { 
     "cname":"Indonesia" 
     }, 
     { 
     "exturl":"N/A" 
     }, 
     { 
     "impdate":"N/A" 
     }, 
     { 
     "lupdate":"29/09/14" 
     }, 
     { 
     "impnote":null 
     } 
    ] 
} 

如果我按印尼,它將停止工作。但是,如果我調用另一個函數返回不同的數據,一個叫countln:

{ 
    "class":"genmap.Country", 
    "id":101, 
    "countryiso":"ID", 
    "countryname":"Indonesia", 
    "regstats":[ 
     { 
     "class":"genmap.Regstat", 
     "id":46 
     } 
    ] 
} 
+5

不言自明的,檢查瀏覽器的控制檯對任何錯誤了同樣的問題.. – user145400 2014-10-08 14:29:06

+0

user145400,我會說是的,然後以爲我會仔細檢查,和真實的是,如果我等待大約兩分鐘,我會得到Uncaught RangeError:超出最大調用堆棧大小,但僅限於此數據(創建兩個不同的JSON處理程序,它們都發送相同的信息)。還有一堆構建參數行,但不確定會導致什麼,因爲調用只返回上面顯示的數據。 – vrghost 2014-10-08 16:00:25

+1

所以你的web請求返回的數據罰款..如果你超過了調用堆棧大小,然後檢查你在做什麼與這些數據。你可能有某種無限循環。順便說一句,你擁有的兩個JSON片段的格式不一樣,不像你說的。 – user145400 2014-10-08 16:38:42

回答

0

我不知道爲什麼這一個工程(當然,不掛,還是無法讀取數據),但它確實,如果有人有就是:)

var mapKeyUrl = "/GenMap/getcountry/jsonchk"; 
var mapKeyUrl = "/GenMap/getcountry/jsonchk" 
$.getJSON(mapKeyUrl, { 
    regsel: "${regsel}", 
    countryiso: code 
}) 
.done(function(contdata) { 
    alert(contdata) 
    contdata = contdata.country 
    alert(contdata) 
    document.getElementById("maptext").innerHTML = "I am an abwrock " + code + contdata.exturl; 
}) 
+0

所以,你在說'改變''你是''''我是一個荒誕的人''讓代碼工作?這確實很奇怪。 – 2014-10-09 16:25:33

相關問題