用jQuery进行ajax与后台的交互出现问题 本帖最后由 cscxxx 于 2013-02-22 19:03:38 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我感觉这个写错了,多了个a吧。url : 'jasonServlet',jsonServlet 页面加载后立即出现问题!另外提交后在js的post那边的44行就有问题! var jsonuserinfo = $.toJSON($('#form').serializeObject());jquery没有toJSON这个静态方法。serializeObject这个方法觉得没必要扩展了,jq已经有serialize方法将表单序列化为键值对字符串了。//var jsonuserinfo = $.toJSON($('#form').serializeObject()); // alert(jsonuserinfo); jQuery.ajax( { type : 'POST', contentType : 'application/json', url : 'http://localhost:8081/TPVFrames/CheckUserLogin', data :$('#form').serialize()// jsonuserinfo,///直接这样就好了。。 dataType : 'json', success : function(data) { alert("新增成功!"); }, error : function(data) { alert("error"); } }); 改了,但有二个问题:1.后端接收不到任何数据,readJSONString(request)打印出来是空。2.url的设置找了网上说应该是原来的页面,实际上应该填什么?(原来的页面?还是填servlet的名称?)js的post部份修改后:$("#submit").click(function() { // var jsonuserinfo = $.toJSON($('#form').serializeObject()); // alert(jsonuserinfo); jQuery.ajax( { type : 'POST', contentType : 'application/json', url : 'http://localhost:8080/TPVFrames/for_jQuery_ajax_servlet.jsp', data :$('#form').serialize(), dataType : 'json', success : function(data) { alert("新增成功!"); }, error : function(data) { alert("error"); } }); } 后来为了解决问题,将问题各别实现后再将功能整成一块:1.先实现一个jquery能与servlet交互的功能(主要学习其中的设置)。2.再把json的功能补上。 非常感谢版主协助并参考网上的讲解完成一些修改如下:JSP<body><form name="nameForm" id="nameForm" method="post" action="javascript:login()"> email:<input id="email" type="text" name="email"/> <input id="submit" type="submit" value="提交"/></form></body></html><script type="text/javascript">function login(){ $("#loading").hide(); var email = document.nameForm.email.value; var formdata = $('#nameForm').serialize(); alert(formdata); $.ajax({ type: "GET", url: "ProcessFormServlet", data: formdata, success: function(result){ alert(result); } }); } </script>Servletprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { response.setContentType("text/html"); String emailname = request.getParameter("email"); System.out.println(emailname); PrintWriter out = response.getWriter(); out.println(emailname); }可传email的value后由Servlet返回再由jQuery显示email js实现,获取同级别的某个结点 文本框自动补全??? java的服务返回文本,如何展示? 100分求助跨域刷新父页面问题 setInterval延伸题 |zyciis| 我自己写了一个图片按比例缩放的,但是当网速不是很快的时候还是会看到图片把网页撑开 在怎么办 谢谢 很棘手的一个问题,希望提供算法。 javascript取得js生成的网页控件 如何得到页面失去焦点事件! 帮忙写个求ip地址函数 求助:合计表格中的单价项input内加入value,填加单价后合计功能失效 宽屏、标屏页面切换
url : 'jasonServlet',jsonServlet
页面加载后立即出现问题!
另外提交后在js的post那边的44行就有问题!
// alert(jsonuserinfo);
jQuery.ajax( {
type : 'POST',
contentType : 'application/json',
url : 'http://localhost:8081/TPVFrames/CheckUserLogin',
data :$('#form').serialize()// jsonuserinfo,///直接这样就好了。。
dataType : 'json',
success : function(data) {
alert("新增成功!");
},
error : function(data) {
alert("error");
}
});
改了,但有二个问题:
1.后端接收不到任何数据,readJSONString(request)打印出来是空。
2.url的设置找了网上说应该是原来的页面,实际上应该填什么?(原来的页面?还是填servlet的名称?)
js的post部份修改后:$("#submit").click(function() {
// var jsonuserinfo = $.toJSON($('#form').serializeObject());
// alert(jsonuserinfo);
jQuery.ajax( {
type : 'POST',
contentType : 'application/json',
url : 'http://localhost:8080/TPVFrames/for_jQuery_ajax_servlet.jsp',
data :$('#form').serialize(),
dataType : 'json',
success : function(data) {
alert("新增成功!");
},
error : function(data) {
alert("error");
}
});
}
后来为了解决问题,将问题各别实现后再将功能整成一块:
1.先实现一个jquery能与servlet交互的功能(主要学习其中的设置)。
2.再把json的功能补上。
并参考网上的讲解完成一些修改如下:
JSP<body>
<form name="nameForm" id="nameForm" method="post" action="javascript:login()">
email:<input id="email" type="text" name="email"/>
<input id="submit" type="submit" value="提交"/>
</form>
</body>
</html>
<script type="text/javascript">
function login(){ $("#loading").hide(); var email = document.nameForm.email.value;
var formdata = $('#nameForm').serialize();
alert(formdata);
$.ajax({
type: "GET",
url: "ProcessFormServlet",
data: formdata,
success: function(result){
alert(result);
}
});
}
</script>
Servletprotected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
response.setContentType("text/html");
String emailname = request.getParameter("email");
System.out.println(emailname);
PrintWriter out = response.getWriter();
out.println(emailname);
}可传email的value后由Servlet返回再由jQuery显示email