`
周一Monday
  • 浏览: 342673 次
  • 来自: 北京
社区版块
存档分类
最新评论

jQuery的$.post方法与$.get方法的异步提交

阅读更多

首先是一个简单的表单:

<form id="form1">
	姓名:<input type="text" name="username" id="username" /><br />
	评论:<input type="text" name="content" id="content" /><br />
	<input type="button" id="send" value="提交"/>
</form>

<p>已有的评论:</p>
<div id="resText" style="color:red;"></div>

 接下来,演示 POST的提交方式:返回普通的字符串

<script type="text/javascript" src="js/jquery-1.10.2.js"></script>
<script type="text/javascript">
	$(function(){
		//方法
		//$.post(url,params,function(data,status){});
		$("#send").click(function(){
			var url = "post1.jsp";
			//var params = {"username":$("#username").val(),"content":$("#content").val()};
			var params = $("#form1").serialize();  //会自动转码,适合表单参数多的时候
			$.post(url,params,function(data,status){
				if(status=="success"){
					$("#resText").html(data);  //加载数据
				}else{
					alert("数据加载失败");
				}
			});
		});
	});
</script>

 后台的数据处理:

<%@page contentType="text/html; charset=UTF-8" %>
<%
request.setCharacterEncoding("utf-8");
String username = request.getParameter("username");
String content = request.getParameter("content");
out.println(username+"说:"+content);
%>

 这样就完成了一个post方式的异步请求。

 

接下来,演示 POST的提交方式:返回XML

前台:

<script type="text/javascript">
	$(function(){
		//方法
		//$.post(url,params,function(data,status){});
		$("#send").click(function(){
			var url = "post2.jsp";
			var params = $("#form1").serialize();  //适合表单参数多的时候
			$.post(url,params,function(data,status){
				if(status=="success"){
					var username = $(data).find("comment").attr("username");
					var content = $(data).find("comment content").text();
					$("#resText").html(username+"说:"+content);
				}else{
					alert("数据加载失败");
				}
			});
		});
	});
</script>

 后台:

<%@page contentType="text/html; charset=UTF-8" %>
<%
String username = request.getParameter("username");
String content = request.getParameter("content");

//这里要设置Content-Type为text/xml
response.setContentType("text/xml;charset=utf-8");  

out.println("<?xml version='1.0' encoding='UTF-8'?>");
out.println("<comments>");
out.println("<comment username='"+username+"'>");
out.println("<content>"+content+"</content>");
out.println("</comment>");
out.println("</comments>");
%>

 注意:设置Content-Type一定是:text/xml

 

以上是POST方法的请求方式,下面看看GET请求方式的处理。

GET请求方式的处理,稍稍麻烦一下,因为编码问题。

 

表单还是之前的表单;看下jQuery的写法。

首先还是返回普通的文本:

<script type="text/javascript">
	$(function(){
		
		//方法
		//$.get(url,params,function(data,status){});
		
		$("#send").click(function(){
			var url = "get1.jsp";
			//var params = {"username":encodeURI( $("#username").val() ),"content": encodeURI( $("#content").val() )};
			var params = $("#form1").serialize();  //适合表单参数多的时候,会自动转码
			$.get(url,params,function(data,status){
				if(status=="success"){
					$("#resText").html( decodeURI( data ) ); 
				}else{
					alert("数据加载失败");
				}
			});
		});
	});
</script>

 

<%@page contentType="text/html; charset=UTF-8" %>
<%

String username = request.getParameter("username");
String content = request.getParameter("content");
//GET转码
username = new String(username.getBytes("iso-8859-1"),"utf-8");
content = new String(content.getBytes("iso-8859-1"),"utf-8");

out.println(username+"说:"+content);
%>

 接下来是GET请求的XML处理方式:

<script type="text/javascript">
	$(function(){
		//方法
		$("#send").click(function(){
			var url = "get2.jsp";
			var params =$("#form1").serialize();
			$.get(url,params,function(data,status){
				if(status=="success"){
					username = decodeURI(  $(data).find("comment").attr("username") );
					content  = decodeURI(  $(data).find("comment content").text() );
					$("#resText").html(username+"说:"+content);
				}else{
					alert("数据加载失败");
				}
			});
		});
	});
</script>

 

<%@page contentType="text/html; charset=UTF-8" %>
<%
String username = request.getParameter("username");
String content = request.getParameter("content");

//这里要设置Content-Type为text/xml
response.setContentType("text/xml;charset=utf-8");  

out.println("<?xml version='1.0' encoding='UTF-8'?>");
out.println("<comments>");
out.println("<comment username='"+username+"'>");
out.println("<content>"+content+"</content>");
out.println("</comment>");
out.println("</comments>");

%>

 通过对比:可以看出,还是POST的请求处理更简单一些。

分享到:
评论

相关推荐

    jQuery Ajax之$.get()方法和$.post()方法

    注意:$.get()和$.post()方法是jQuery中的全局函数。前面讲到的load()方式是对jQuery对象进行操作的。 1、 $.get()方法  $.get()方法使用GET方式来进行异步请求。  它的语法结构为:  $.get( url [, data] [, ...

    jquery 异步调用$.ajax() $.post() $.get()

    NULL 博文链接:https://andy2019.iteye.com/blog/1515064

    jQuery Ajax 实例详解 ($.ajax、$.post、$.get)

    $.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一、$.ajax的一般格式 $.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType }); 二、$...

    jQuery中$.ajax()和$.getJson()同步处理详解

    二、$.ajax()参数解释 url: 发送请求的地址。 type: 请求方式(post或get)默认为get。 timeout: 要求为Number类型的参数,设置请求超时时间(毫秒)。 async:默认设置为true,所有请求均为异步请求。同

    jQuery中$.get、$.post、$.getJSON和$.ajax的用法详解

    $.get()方法使用GET方式来进行异步请求,它的语法结构为: $.get( url [, data] [, callback] ) 解释一下这个函数的各个参数: url:string类型,ajax请求的地址。 data:可选参数,object类型,发送至服务器的key/...

    jquery异步提交例子

    jquery 异步提交的例子。使用的是jquery + servlet 。使用jquery $.get() $.post() 提交请求道servlet 页面

    httpxmlRequest+ajax+jquery+fastjson+jsp异步通讯实战案例精讲

    利用JQuery的ajax支持,详细讲解$.ajax,$.post,$.get等方法实现ajax技术;讲解ajax文件上传,三级联动等;利用ajax技术返回普通文本,xml格式,JSON格式数据等案例;具体案例如下: 1.前端创建HTTPXMLRequest对象及...

    Jquery中$.ajax()方法参数详解

    俗说好记性不如个烂笔头,下面是jquery中的ajax方法参数详解,这里...此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。如果需要发送同步请求,

    $.ajax()方法参数详解

    会灵活的运用ajax的方法,非常重要,本文先给大家介绍ajax的几种方法,然后通过实例给大家分析...此设置将覆盖$.ajaxSetup()方法的全局设置。 4.async: 要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求

    jquery异步调用post get方式

    jquery异步调用post get方式

    JQuery权威指南源代码

    $.post发送请求 serialize()序列化表单 $.ajax()方法发送请求 第7章 validate验证插件 form表单插件 cookie插件 autocomplete插件 notesforlightbox插件 ContextMenu插件 JQZoom放大镜插件 编写一个对象...

    jQuery中Ajax的get、post等方法详解

    在项目中,如果需要传递一些参数给服务器中的页面,那么可以使用$.get()或者$.post()方法(或者是$.ajax()方法) $.get()方法使用GET方式来进行异步请求。结构为:$.get(url [, data] [, callback] [, type]) $.get()...

    jQuery中异步交互技术详细指南

    最完整的方法是jQuery.ajax(options),同时她也是jQuery底层AJAX实现,简单容易的高层实现大家可以看下API中提供的jQuery.get(options)、jQuery.post(options),以及配合JSON做为传输数据格式的方法jQuery.getJSON...

    ajaxRequest.js(ajax get post方法封装,方便前端调用)

    封装jquery ajax方法,方便调用,避免在代码中频繁使用 $.ajax({ type: 'GET', url: url, ...... )}; 统一调用公共方法即可,区分同步异步,get post!希望对大家有帮助

    JQuery中$.ajax()方法参数详解及应用

    此设置将覆盖$.ajaxSetup()方法的全局设 置。 async:要求为Boolean类型的参数,默认设置为true,所有请求均为异步请求。 如果需要发送同步请求,请将此选项设置为false。注意,同步请求将锁住浏览器,用户其他操作...

    原生JavaScrpit中异步请求Ajax实现方法

    一般来说,使用Jquery中的$.ajax,$.post,$.getJSON,非常方便,但是有的时候,我们只因为需要ajax功能而引入Jquery比较不划算。 所以接下来便用原生JavaScrpit实现一个简单的Ajax请求,并说明ajax请求中的跨域访问...

    jQuery Ajax使用实例

    $.post、$.get是一些简单的方法,如果要处理复杂的逻辑,还是需要用到jQuery.ajax() 一、$.ajax的一般格式 $.ajax({ type: 'POST', url: url , data: data , success: success , dataType: dataType }); 二...

    Django中使用jquery的ajax进行数据交互的实例代码

    jquery框架中提供了$.ajax、$.get、$.post方法,用于进行异步交互,由于Django中默认使用CSRF约束,推荐使用$.get 示例:实现省市区的选择 最终实现效果如图: 将jquery文件拷贝到static/js/目录下 打开booktest/...

Global site tag (gtag.js) - Google Analytics