jQuery 对ajax的三层封装

本文详细介绍了jQuery对Ajax的三层封装:$.ajax()、$.get()与$.post()、$.getJSON()和$.getScript()。讲解了各方法的用法、参数以及在处理数据类型和回调函数方面的应用,帮助读者深入理解jQuery如何简化Ajax操作。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

12.1jQuery对Ajax的封装
jQuery中的ajax解决了大部分浏览器的兼容性问题
javascript使用ajax时,需要使用XMLHttpRequest对象,jQuery使用ajax时,也需要使用XMLHttpRequest对象

jQuery对Ajax的第一层次封装 $.ajax()
jQuery对Ajax的第二层次封装 $.get() $.post() load()
jQuery对Ajaxd的第三层次封装$.getJSON() $.getScript()

注意事项

$.get()$.post()中的参数不可以互换位置,不是缺一不可的
$.ajax()中的参数可以互换位置,不是缺一不可的
$.get()/$.post()/$.ajax()会自动将服务器返回的 JSON 字符串转换成 JavaScript 对象

12.2 jQuery对Ajax的第一层次封装

$.ajax()方法

1)用法:$.ajax( { … } ),参数顺序无所谓。
2)参数如下:
①url(string):请求地址。
②type(string):GET/POST。
③data(object/string):请求参数。
④dataType(string):预期服务器返回的数据类型。
A.html:返回的是一个 html 文档。 B.text:返回的是纯文本。
C.json:返回的是 json 字符串。 D.xml: 返回的是一个 Xml 文档。
E.script:返回的是一个 javascript 脚本
⑤success(function): 请求成功后调用的回调函数, 有两个参数 function(data,textStatus),
其中 data 是服务器返回的数据,textStatus 描述状态的字符串。
⑥error(function):请求失败时调用的函数,有三个参数function(xhr,textStatus,errorThrown):
A.xhr:底层的 XMLHttpRequest 对象。 B.textStatus:错误的描述。C.errorThrown:一般为 null。
⑦async:true(缺省,异步)/false(同步)

$.ajax({
	url : "/servlet/DemoServlet",//地址
	type : "post",//请求类型
	data : {
		"name" : $("#name").val()
	},//要传的值,以键值对的形式存在
	dataType : "text",
	success : function(data) {//data是变量,是服务器传到jsp的数据。相当于以前从Servlet转发到jsp
		alert(data + "从Servlet传过来的数据");
	}
});


12.3 jQuery对Ajax的第二层次封装
1.$.get()方法

1)作用:使用 get 方式向服务器发请求。
2)用法:$.get(url,[data],[callback],[type]);
①url:请求地址。
②data:请求参数,有两种形式:A.请求字符串形式:"name=chang&&age=23"B.对象形式:{‘name’:‘chang’,‘age’:23}。
③callback:是一个回调函数,格式:function(data,statusText),
其中,data 是服务器返回的数据,statusText 是服务器处理的状态。
④type:服务器返回的数据的类型,有五种:
A.html:返回的是一个 html 文档。 B.text:返回的是纯文本。
C.json:返回的是 json 字符串。 D.xml: 返回的是一个 Xml 文档。
E.script:返回的是一个 javascript 脚本。

$.get('ActionServlet',function(data){
		$('#tb1').empty();//先清空之前的内容
		for(i=0;i<data.length;i++){ 
			$('#tb1').append( '<tr><td>'+data[i].name+'</td><td>'+data[i].code+'</td><td>'+data[i].price+'</td></tr>'); 
		}
	},
	'json'
	);//ActionServlet 中发送的是 JSON 字符串,所以此处写 json

2..post()方法使用HTTPpost请求从服务器加载数据。用法:.post() 方法使用 HTTP post 请求从服务器加载数据。 用法:.post()使HTTPpost.post(url,data,function(data,status,xhr),datatype)跟get方法相同。

3.load() 方法从服务器加载数据,并使用返回的html内容替换当前匹配元素的内容。
load()函数默认使用GET方式,如果提供了对象形式的数据,则自动转为POST方式。
load()函数只会替换每个匹配元素的内部内容(innerHTML)。
$(selector).load(url,data,function(response,status,xhr))
把文件 “demo_test.txt” 的内容加载到指定的

元素:

$("button").click(function(){
		$("#div1").load("demo_test.txt");
	});

12.4 jQuery对Ajaxd的第三层次封装
1 jQuery.getJSON()
getJSON() 方法使用 AJAX 的 HTTP GET 请求获取 JSON 数据。
JSON是一种数据格式,JS原生支持JSON格式,通过jQuery.getJSON()从服务器获得的JSON数据,jQuery会先尝试将其转为对应的JS对象。
语法 $(selector).getJSON(url,data,success(data,status,xhr))
使用 Ajax 请求获取 JSON 数据,并输出结果:

$(document).ready(function(){
    $("button").click(function(){
        $.getJSON("action.jsp?m=list ",function(result){
		// jQuery将获取的JSON格式数据转换为JS数组
 		 for(var i in data){
     			var obj = data[i];
        		alert( obj.title );
    		}
           });
    });
});

2 jQuery.getScript()
使用 AJAX 请求,获取和运行 JavaScript:
用于通过HTTP GET形式的加载JavaScript文件并运行它。
该函数用于动态加载JS文件,并在全局作用域下执行文件中的JS代码。
该函数可以加载跨域的JS文件。请注意,该函数是通过异步方式加载数据的。

$("button").click(function(){
	//加载并执行js文件demo_ajax_script.js?v=1.3
	//并在成功后执行回调函数
	$.getScript( "demo_ajax_script.js?v=1.3", 
		function(data){  
			alert( "加载成功" );    
			// 这里假设加载的js文件中定义了函数renderUI(),这里即可执行
    			renderUI();
		}
	 );
});
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值