我的HTML代码是
<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&password=zeeshan@123
我想以json格式得到答案,如:
{"name":"zeeshan","password":"zeeshan@123"}
获取数据的servlet代码
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);
}
我经常搜索,他们说这段代码的输出都在json中,但实际上我并没有以那种格式得到它。
如何让输出为JSON格式?
答案 0 :(得分:0)
看起来你在发送之前将其字符串化,这可能是问题
答案 1 :(得分:0)
您可以在javascript中尝试此解决方法:
data:{'json':JSON.stringify($(form).serializeArray())},
在servlet中:
String json=request.getParameter("json");
<强>编辑:强>
data:{'json':JSON.stringify($(form).serializeObject())},
答案 2 :(得分:0)
更改
<input type="submit" id="button" value="login">
到
<input type="button" id="button" value="login">
点击输入类型提交,直接提交表单并重新加载页面,因此永远不会调用您的脚本。