JQuery中使用Ajax

JQuery 对 Ajax 操作进行了封装

  1. 在 jQuery 中最底层的方法时 $.ajax()
  2. 第二层是 load(), $.get() 和 $.post()
  3. 第三层是 $.getScript() 和 $.getJSON()

load()方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <title>load()方法</title>
        <meta http-equiv="content-type" content="text/html; charset=UTF-8">
        <script type="text/javascript" src="../js/jquery-1.4.2.js">
        </script>
        <style type="text/css">
            div, span {
                width: 140px;
                height: 140px;
                margin: 20px;
                background: #9999CC;
                border: #000 1px solid;
                float: left;
                font-size: 17px;
                font-family: Roman;
            }
            
            div.mini {
                width: 30px;
                height: 30px;
                background: #CC66FF;
                border: #000 1px solid;
                font-size: 12px;
                font-family: Roman;
            }
            
            div.visible {
                display: none;
            }
        </style>
        <!--引入jquery的js库-->
    </head>
    <body>
        <form action="" name="form1" id="form1">
            <input type="text" name="username" id="username" value="zhang">
            <br>
            <input type="text" name="psw" id="psw" value="99999">
            <br>
            <input type="button" id="b1" value="登陆">
        </form>
        <div id="one">
        </div>
    </body>
    <script language="JavaScript">
     	$(function(){
			$("#b1").click(function(){
				/*
				 * $(expr).load(url,data,callback)
				 * 	* url:请求路径,绝对路径或相对路径
				 * 	* data:请求参数,格式必须是key/value格式
				 * 	* callback:回调函数,function(data, textStatus, XMLHttpRequest){}
				 * 		* data:代表请求返回内容
				 * 		* textStatus:代表请求状态,值可能为: succuss, error, notmodify, timeout 4 种
				 * 		* XMLHttpRequest对象
				 * 
				 * jQuery中封装Ajax操作
				 * 
				 * load()方法的请求类型:
				 * 	* (默认情况下)在没有向服务器端发送请求数据的时候,load()方法的请求类型就是GET方式
				 * 	* 在向服务器端发送了请求数据的时候,load()方法的请求类型就是POST方法
				 * load()方法的问题:
				 * 	* load()不能自定义请求类型,而是由是否向服务器端发送请求数据
				 * 	* load()不能自定义数据交换格式,只能使用文本(HTML)格式
				 */
				var json = {
					username : $("#username").val(),
					psw : $("#psw").val()
				}
				
				$("#one").load("load.jsp",json,function(data, textStatus, XMLHttpRequest){
					alert(data);
				});
				
			});
		});
    </script>
</html>
load.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
	System.out.println("connection server success!");
	
	System.out.println(request.getMethod());
	
	System.out.println("username = "+request.getParameter("username"));
	System.out.println("password = "+request.getParameter("psw"));
	
	out.println("helloworld!");
	
%>

$.get() 和 $.post()方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>get()方法和post()方法</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="../js/jquery-1.4.2.js"></script>
	<style type="text/css">
		 	div,span{
			    width: 140px;
			    height: 140px;
			    margin: 20px;
			    background: #9999CC;
			    border: #000 1px solid;
				float:left;
			    font-size: 17px;
			    font-family:Roman;
			}
			
			div.mini{
			    width: 30px;
			    height: 30px;
			    background: #CC66FF;
			    border: #000 1px solid;
			    font-size: 12px;
			    font-family:Roman;
			}
			
			div.visible{
				display:none;
			}
	 </style>
	 <!--引入jquery的js库-->
    
	</head>
	 
	<body>
		<form action="" name="form1" id="form1">
			<input type="text" name="username" id="username" value="zhang"><br>
			<input type="text" name="psw" id="psw" value="99999"><br>
	        <input type="button" id="b1" value="登陆">
		</form>
		
		<div id="one">
		</div>
		
	</body>
<script language="JavaScript">
   $(function(){
   		$("#b1").click(function(){
//			/*
//			 * $.get(url,data,callback,type)
//			 * 	* url:请求路径
//			 * 	* data:请求参数,格式是key/value
//			 * 	* callback:回调函数,function(data, textStatus){}
//			 * 		* data:请求返回的数据内容,可以是HTML代码、XML片段或JSON格式等
//			 * 		* textStatus:请求的状态,其值是success、error、notmodify、timeout等
//			 * 		* 返回值:XMLHttpRequest对象
//			 * 	* type:返回内容格式,xml, html, script, json, text, _default。
//			 * 
//			 * $.get()方法的请求类型一定是GET方式
//			 */
//			var json = {
//				username : $("#username").val(),
//				psw : $("#psw").val()
//			}
//			
//			$.get("getandpost.jsp",json,function(data, textStatus){
//				//直接接收服务器端的响应数据格式为JSON格式
//				console.info(data);
//				
//				//var json = eval("("+data+")");
//				//console.info(json);
//			});
			
			/*
			 * $.post(url,data,callback,type)
			 * 	* url:请求路径
			 * 	* data:请求参数,格式是key/value
			 * 	* callback:回调函数,function(data, textStatus){}
			 * 		* data:请求返回的数据内容,可以是HTML代码、XML片段或JSON格式等
			 * 		* textStatus:请求的状态,其值是success、error、notmodify、timeout等
			 * 		* 返回值:XMLHttpRequest对象
			 * 	* type:返回内容格式,xml, html, script, json, text, _default。
			 * 
			 * $.post()方法的请求类型一定是POST方式
			 */
//			var json = {
//				username : $("#username").val(),
//				psw : $("#psw").val()
//			}
			
			//序列化元素
			var json = $("#form1").serialize();
			
			$.post("getandpost.jsp",json,function(data, textStatus){
				//直接接收服务器端的响应数据格式为JSON格式
				console.info(data);
				
				//var json = eval("("+data+")");
				//console.info(json);
			});
		});
   });
</script>
</html>
getandpost.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
	System.out.println("conenction server success!");
	
	System.out.println(request.getMethod());
	
	System.out.println("username = "+request.getParameter("username"));
	System.out.println("password = "+request.getParameter("psw"));
	
	//响应文本格式
	//out.println("helloworld!");
	
	//响应XML格式
	//response.setContentType("text/xml");
	//out.println("<china><province name='jilinsheng'></province></china>");
	
	//响应JSON格式:jQuery提供的get()或post()方法时,数据格式为JSON格式时,只能使用第三方工具构建JSON格式的数据内容,不能使用手工方式
	out.println("[{'province':'jilinsheng'},{'province':'liaoningsheng'},{'province':'shandongsheng'}]");
	
%>

$.ajax()方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>ajax()方法</title>
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="../js/jquery-1.4.2.js"></script>
	<style type="text/css">
		 	div,span{
			    width: 140px;
			    height: 140px;
			    margin: 20px;
			    background: #9999CC;
			    border: #000 1px solid;
				float:left;
			    font-size: 17px;
			    font-family:Roman;
			}
			
			div.mini{
			    width: 30px;
			    height: 30px;
			    background: #CC66FF;
			    border: #000 1px solid;
			    font-size: 12px;
			    font-family:Roman;
			}
			
			div.visible{
				display:none;
			}
	 </style>
	 <!--引入jquery的js库-->
    
	</head>
	 
	<body>
		<form action="" name="form1" id="form1">
			<input type="text" name="username" id="username" value="zhang"><br>
			<input type="text" name="psw" id="psw" value="99999"><br>
	        <input type="button" id="b1" value="登陆">
		</form>
		
		<div id="one">
		</div>
		
	</body>
<script language="JavaScript">
   	$(function(){
		$("#b1").click(function(){
			/*
			 * $.ajax(options)
			 * 	* options:(可选)
			 * 		* url:请求路径
			 * 		* type:请求类型
			 * 		* async:表示是否异步
			 * 		* data:发送到服务器端的请求数据,格式是key/value格式
			 * 		* success:表示Ajax异步交互请求成功后,回调函数(接收服务器端的响应)
			 * 			* function(data, textStatus){}
			 * 				* data:请求返回的数据内容
			 * 				* textStatus:表示请求的状态,值有success、error、notmodify、timeout等
			 *		* error:表示Ajax异步交互请求失败后,回调函数
			 			* function(XMLHttpRequest, textStatus, errorThrown){}
			 				* XMLHttpRequest对象
			 				* textStatus:表示请求的状态,值有success、error、notmodify、timeout等
			 				* errorThrown:异常对象
			 * 	* 返回值:XMLHttpRequest对象
			 */
			var json = {
				username : $("#username").val(),
				psw : $("#psw").val()
			}
			
			$.ajax({
				url : "ajax.jsp",
				type : "get",
				async : true,
				data : json,
				success : function(data, textStatus){
					alert(data);
				},
				error : function(XMLHttpRequest, textStatus, errorThrown){
					alert("请求错误啦。。。");
				}
			});
			
		});
	});
</script>
</html>
ajax.jsp
<%@ page language="java" pageEncoding="UTF-8"%>
<%
	System.out.println(request.getMethod());
	
	System.out.println("connection server success!");
	
	System.out.println("username = "+request.getParameter("username"));
	System.out.println("password = "+request.getParameter("psw"));
	
	out.println("helloworld");
%>

$.getScript() 方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>getScript()方法</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="../js/jquery-1.4.2.js"></script>
	<style>
		* { margin:0; padding:0;}
		body { font-size:12px;}
		.comment { margin-top:10px; padding:10px; border:1px solid #ccc;background:#DDD;}
		.comment h6 { font-weight:700; font-size:14px;}
		.para { margin-top:5px; text-indent:2em;background:#DDD;}
		.block{width:80px;height:80px;background:#DDD;}
	</style>
  </head>
  <body>
	 <br/>
	 <p>
		 <input type="button" id="send" value="加载"/>
	 </p>
	
	<div  class="comment">已有评论:</div>
	 <div id="resText" >
		
	 </div>
  </body>
  <script type="text/javascript">
   $(function(){
        $('#send').click(function() {
			 /*
			  * $.getScript(url,callback)
			  * 	* url:请求路径,可以是绝对路径和相对路径
			  * 	* callback:回调函数
			  */
			 $.getScript('test.js');
        });
   })
  </script>
</html>
test.js
var comments = [
  {
    "username": "张三",
    "content": "沙发."
  },
  {
    "username": "李四",
    "content": "板凳."
  },
  {
    "username": "王五",
    "content": "地板."
  }
];

  var html = '';
  $.each( comments , function(commentIndex, comment) {
      /*
       * JSON格式中的kye/value格式的调用:
       * 	* json.key
       * 	* json['key']
       */
	  html += '<div class="comment"><h6>' + comment['username'] + ':</h6><p class="para">' + comment['content'] + '</p></div>';
  })

  $('#resText').html(html);

 $.getJSON()方法

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
  <head>
    <title>getJSON()方法</title>
    <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
    <meta http-equiv="description" content="this is my page">
    <meta http-equiv="content-type" content="text/html; charset=UTF-8">
	<script type="text/javascript" src="../js/jquery-1.4.2.js"></script>
	<style>
		* { margin:0; padding:0;}
		body { font-size:12px;}
		.comment { margin-top:10px; padding:10px; border:1px solid #ccc;background:#DDD;}
		.comment h6 { font-weight:700; font-size:14px;}
		.para { margin-top:5px; text-indent:2em;background:#DDD;}
		.block{width:80px;height:80px;background:#DDD;}
	</style>
  </head>
  <body>
	 <br/>
	 <p>
		 <input type="button" id="send" value="加载"/>
	 </p>
	
	<div  class="comment">已有评论:</div>
	 <div id="resText" >
		
	 </div>
  </body>
  <script type="text/javascript">
   $(function(){
        $('#send').click(function() {
			 /*
			  * $.getJSON(url,data,callback)
			  * 	* url:请求路径
			  * 		* ".json"文件:专门用来存储符合JSON格式的数据内容,当作一个文本文档
			  * 	* data:请求参数
			  * 	* callback:回调函数,function(data){}
			  * 		 * data:表示请求返回的内容
			  */
			 $.getJSON("test.json",function(data){
			 	$('#resText').empty();
				  var html = '';
				  $.each( data  , function(commentIndex, comment) {
					  html += '<div class="comment"><h6>' + comment['username'] + ':</h6><p class="para">' + comment['content'] + '</p></div>';
				  })
				 $('#resText').html(html);
			 });
       })
   })
  </script>
</html>
test.json
[
  {
    "username": "张三",
    "content": "沙发."
  },
  {
    "username": "李四",
    "content": "板凳."
  },
  {
    "username": "王五",
    "content": "地板."
  }
]









  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值