2017-03-08 304 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 –