2017-03-08 360 views
-1

這不起作用。什麼可能是錯誤?我想從客戶端以json到servlet的形式獲取名稱和密碼。將json對象從jsp發送到servlet時沒有響應

的index.jsp

<script src=」http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js」> 
    </script> 
    <script type="text/html"> 
     function callFun(){ 
      var n = document.getElementById('n1').value; 
      var p = document.getElementById('n2').value; 
      var myData = {"mydata" :{"name":n,"password":p}}; 

      $.ajax({ 
       type:'POST', 
       url:'/Page', 
       data:{jsonData:JSON.stringify(myData)}, 
       dataType:'json', 

       success:function(data){ 
        alert(json["resultText"]); 
       } 
      }); 
     } 
    </script> 

    <form> 
     Name:<input type="text" name="nam" id="n1"><br> 
     Password:<input type="password" name="password" id="n2"><br> 
     <input type="button" onclick="callFun()" value="submit"> 
    </form> 

這是servlet類Page.java

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 
    JSONObject newObj = new JSONObject(); 
    try(){ 
     String json = request.getParameter("jsonData"); 
     JSONObject jsonData = (JSONObject) JSONValue.parse(json); 
     String name = (String) jsonData.get("name"); 
     System.out.println(name)); 
    }catch(JSONException e){ 
     e.printStackTrace(); 
    } 
} 

回答

0

您是不是要找alert(data["resultText"]);

也注意到您使用的是舊版本的jQuery的AJAX的。檢查official Jquery AJAX guide的當前版本。在目前的版本中,你可以使用.fail調用來獲取錯誤信息

var request = $.ajax({ 
    url: "script.php", 
    method: "POST", 
    data: { id : menuId }, 
    dataType: "html" 
}); 

request.done(function(msg) { 
    $("#log").html(msg); 
}); 

request.fail(function(jqXHR, textStatus) { 
    alert("Request failed: " + textStatus); //Dipslay the error here 
}); 
+0

它並沒有幫助。它也沒有顯示任何錯誤。 我使用jsonObject的方式是正確的嗎? String json = request.getParameter(「jsonData」); JSONObject jsonData =(JSONObject)JSONValue.parse(json); String name =(String)jsonData.get(「name」); –

+0

你使用什麼Json庫? – lonelyloner

+0

我一直在使用simple-json –