2017-08-05 41 views
0
JSON格式的表單數據

我的HTML代碼是如何讓servlet的

<form action="/FirstServlet/Profile" method="post" class="login"> 
    UserName: <input type="text" id="uName" name="name"><p> 
    Password: <input type="password" id="password" name="password"><br> 
    <input type="submit" id="button" value="login"> 
</form> 

和JavaScript代碼是

<script src="js/jquery-3.2.1.min.js"></script> 
<script src="js/jquery.serializeObject.js"></script> 
<script src="js/Gruntfile.js"></script> 
<script> 
    $(document).ready(function(){ 
      var form=$('form.login').serializeObject(); 
      alert(form); 
      form.submit(function(){ 
       $.ajax({ 
        type:form.attr('method'), 
        url:form.attr('action'), 
        dataType:'json', 
        data:Json.stringify(form), 
        success:function(data){ 

        } 
       }); 
      }); 

     }); 
</script> 

但我仍然得到答案這種格式

name=zeeshan&[email protected] 

我想以json格式得到答案,如:

{"name":"zeeshan","password":"[email protected]"} 

我越來越

protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { 

    BufferedReader br = new BufferedReader(new InputStreamReader(request.getInputStream())); 


    String json = ""; 
    if(br != null){ 
     json = br.readLine(); 
    } 
    System.out.println(json); 
} 

我搜索了很多數據的servlet代碼,每一個地方,他們說,這段代碼的輸出是JSON,但實際上我並沒有在該格式得到它。

如何讓我的輸出成爲JSON格式?

回答

0

它看起來像您發送之前字符串化了,這可能是問題

0

你可以試試這種解決方法,在javascript:

data:{'json':JSON.stringify($(form).serializeArray())}, 

在servlet的:

String json=request.getParameter("json"); 

編輯:

data:{'json':JSON.stringify($(form).serializeObject())}, 
+0

感謝哥們,這幫了我......我喜歡 –

+0

data:{'json':JSON.stringify($(form).serializeObject())}, –

0

變化

<input type="submit" id="button" value="login"> 

<input type="button" id="button" value="login"> 

點擊輸入類型提交,直接提交表單並重新加載頁面,因此你的腳本不會被調用。