2013-10-22 113 views
-1

我在從JSON檢索數據時遇到困難。當我點擊按鈕時,它會觸發呼叫功能,呼叫功能將調用json.jsp文件從數組中檢索數據。現在我無法檢索數據。這是我的JavaScript文件;從json數組檢索數據

var callback; 
function call(uid, pw) { 
    callback = true; 
    $.getJSON("json.jsp" + "?uid=" + uid + "&rdm=" + Math.random(), function (data) { 
     $.each(data.menulist, function (key, val) { 
      $("#cont").append("<div>" + val + "</div>"); 
     }); 
     callback = false; 
    }); 
} 

而下面是我的jsp文件;

String uid=request.getParameter("uid")==null?"xxx":request.getParameter("uid"); 

if (uid.equalsIgnoreCase("admin")){ 
    {"menulist":[{"menu":"menu1"},{"menu":"menu2"},{"menu":"menu3"}]} 
} else if (uid.equalsIgnoreCase("user")){ 
    {"menulist":[{"menu":"menu1"},{"menu":"menu2"}]} 
} else { 
    {"menu":"Menu"} 
} 
+0

日誌中的任何錯誤?您是否在網絡控制檯中檢查了請求? – mguimard

+0

是的,我檢查過網絡。 – ksh

+0

而且?請求是否到達服務器?如果是這樣,響應如何? – mguimard

回答

1

終於我明白了這一點;

$("#cont").append("<div>" + data.menulist[i].menu + "</div>");

0

首先,您的JSP代碼看起來不正確。你應該附上JSP腳本與<%%>如下:

<%String uid=request.getParameter("uid")==null?"xxx":request.getParameter("uid"); 

if (uid.equalsIgnoreCase("admin")){ %> 
    {"menulist":[{"menu":"menu1"},{"menu":"menu2"},{"menu":"menu3"}]} 
<%} else if (uid.equalsIgnoreCase("user")){ %> 
    {"menulist":[{"menu":"menu1"},{"menu":"menu2"}]} 
<%} else { %> 
    {"menu":"Menu"} 
<%}%> 

你有沒有嘗試直接訪問URL,並檢查JSP輸出正確的JSON內容。

http://localhost:8080/yourapp/json.jsp?uid=admin&rdm=1 
+0

是的,我知道。我刪除它在這裏張貼。 – ksh