AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML)可以使网页实现异步更新,就是不重新加载整个网页的情况下,对网页的某部分进行更新(局部刷新),用于创建快速交互式网页应用的网页开发技术。JQuery的Ajax异步请求好几种,下面分别来介绍一下。


1.JQuery.ajax(url,[seetings])通过http请求加载远程数据,这是最底层的ajax实现,JQuery.get和.post都是它的高层实现,返回其创建的XMLHttpRequest对象。


url:一个用来包含发送请求的URL字符串。

setttings:AJAX请求设置。


常用设置:


async:默认为异步请求true,同步请求设置为false,同步请求将锁住浏览器,其他操作必须等待请求完成才可操作


beforeSend(XMLHttpRequest):发送请求前可修改XMLHttpRequest对象的函数。


complete(XMLHttpRequest,textStatus):请求完成后回调函数。


dataType:预期服务器返回的数据类型。xml html script json text。


success:请求成功后回调函数。这个方法有两个参数:服务器返回数据,返回状态


error:请求失败时将调用此方法。这个方法有三个参数:XMLHttpRequest 对象,错误信息,捕获的错误对象。



function changeState(userid,state){
		$.ajax({
			type:"post",	//请求类型		
			url:"${pageContext.request.contextPath}/sysuser/changeState.action",//请求路径
			data:"userId="+userid+"&userState="+state,//传递参数
			dataType:"text",//预期服务器返回类型
			//如果成功,回调函数
			success:function(data){
				var $stateSpan=$("#stateSpan"+userid);
				var $operateSpan=$("#operateSpan"+userid);
				
				if(data == "1"){
					//状态应该显示为:可用
					$stateSpan.html("<font color='green'>可用</font>");
					$operateSpan.html("<a href='javascript:changeState("+userid+",0)'>禁用</a>");
				}else {
					//状态应该显示为:不可用
					$stateSpan.html("<font color='red'>不可用</font>");
					$operateSpan.html("<a href='javascript:changeState("+userid+",1)'>启用</a>");
				}
			}
		});


Sevlet层:



HttpServletResponse response=ServletActionContext.getResponse();
response.setContentType("text/html;charset=UTF-8");
response.getWriter().write(data);


2.load(url,[data],[callback]载入远程HTML文件代码并插入到DOM中,默认使用get方式,传递附加参数时自动转为post请求方式。


url:待装入 HTML 网页网址。

data:发送至服务器的 key/value 数据。在jQuery 1.3中也可以接受一个字符串了。

callback:载入成功时回调函数。



<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<script type="text/javascript" src="../js/jquery-1.11.3.js"></script>
<script>
	//文档加载后激活函数
 	$(document).ready(function(){
 		//button按钮点击后触发
  		$("#btn").click(function(){
  			//id为result的加载hello.html页面中的内容和状态
    		$("#result").load("hello.html",function(responseText,textStatus){
    			$("#display").append("<hr>responseText:"+responseText);
    			$("#display").append("<hr>textStatus:"+textStatus);
   			});  
  		});
 	});
</script>
</head>
	<body>
		<input type="button" value="测试" id="btn" />
		
		<h2>显示的内容如下:</h2>
		<div id="result"></div>
		
		<h2>结果:</h2>
		<div id="display"></div>
	</body>
</html>



结果如下:


   

jquery发请求参数 jquery数据请求_ajax


3.JQuery.get(url,[data],[callbak])使用get方式进行异步请求,通过http get请求载入信息,这是一个简单的get请求功能以取代复杂的$.ajax,只有请求成功时才调用回调函数。


url:待载入页面的URL地址

data:待发送 Key/value 参数。

callback:载入成功时回调函数。

type:返回内容格式,xml, html, script, json, text, _default。


get请求基本上和ajax差不多,就是封装的比较简单易用而已。



<script>
	//文档加载后激活函数
 	$(document).ready(function(){
 		//button按钮点击后触发
  		$("#btn").click(function(){
  			//get方法请求
 			$.get("${pageContext.request.contextPath}/checkUserName.action",	
 				{username:val},function(data){
    			$("#display").append("<hr>data:"+data);
   			});  
  		});
 	});
</script>




4.JQuery.post(url,[data],[callbak])

post请求和get请求差不多,Get是向服务器发索取数据的一种请求,而Post是向服务器提交数据的一种请求。这个不详细写了。


小结:JQuery的AJAX请求时我们特别常用的异步请求,可能知识点当下理解了,但是还是需要在使用的过程中不断应用实践,加油吧,少年。