Ajax请求

Ajax是一种通过JavaScript异步请求数据并局部更新页面的技术,避免了页面刷新。原生实现包括创建XMLHttpRequest对象、open方法、send方法以及onreadystatechange事件处理。jQuery对Ajax进行了封装,提供更简洁的API,如url、data、success和dataType等。jQuery的$.getJSON方便进行GET请求和JSON数据处理,但需注意后台返回数据类型与指定dataType的匹配,否则将触发error回调。

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

Ajax请求

Ajax即“Asynchronous Javascript And Xml”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术。

Ajax是一种浏览器通过js异步发起请求,局部更新页面的技术。

Ajax由前端来实现

通过原生的js来实现Ajax请求

1、首先创建XMLHttpRequest对象

var xmlHttpRequest=new XMLHttpRequest();

2、调用open方法设置请求信息及参数

xmlHttpRequest.open(method,Url,true/false);
  • 其中method是请求的方式:GET/POST
  • Url是请求的地址
  • true/false :表示异步或者同步

3、在send方法发送请求之前,先绑定onreadystatechange事件,处理请求完成后的操作(回调函数)

	xmlHttpRequest.onreadystatechange=function () {
		if (xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){
			var jsonObj=JSON.parse(xmlHttpRequest.responseText);
			//把响应的数据显示在页面上
			document.getElementById("div01").innerHTML="编号:"+jsonObj.id+" ,姓名:"+jsonObj.name;
		}
	}

4、调用send()发送请求

完整代码:

		function ajaxRequest() {
				//1、我们首先要创建XMLHttpRequest
				var xmlHttpRequest=new XMLHttpRequest();
				//2、调用open方法设置请求参数
				xmlHttpRequest.open("GET","http://localhost:8080/json/ajaxServlet?action=javaScriptAjax",true);
				//3、在send方法前绑定onreadystatechange事件,处理请求完成后的操作。
				xmlHttpRequest.onreadystatechange=function () {
					if (xmlHttpRequest.readyState==4 && xmlHttpRequest.status==200){
						alert("收到服务器返回的数据"+xmlHttpRequest.responseText);
						var jsonObj=JSON.parse(xmlHttpRequest.responseText);
						//把响应的数据显示在页面上
						document.getElementById("div01").innerHTML="编号:"+jsonObj.id+" ,姓名:"+jsonObj.name;
					}
				}
				//4、调用send方法发送请求
				xmlHttpRequest.send();
		}

Ajax请求的特点:

  • Ajax请求局部更新,浏览器的地址栏不会发生变化
  • 局部更新不会舍弃原来页面的内容
  • 异步的好处:当前功能的交互并不用影响其他功能的交互。不会出现当前功能正在交互,而其他功能无法使用的情况。

jQuery中的Ajax请求

jQuery中的Ajax请求是对原生js的Ajax请求的封装,操作更为便捷

$.ajax({
	url:"http://localhost:8080/json/ajaxServlet",
	data:{action:"jQueryAjax"},
	type:"GET",
	success:function (data) {
		//var jsonObj = JSON.parse(data);
		alert(data);
		$("#msg").text("编号:"+data.id+" ,姓名:"+data.name);
	},
	dataType:"json"
});

其中:

  • url:表示请求的地址
  • data:表示请求参数
  • type:表示请求的类型GET/POST
    格式有两种:
    1、name=value&name=value
    2、{key:value}
  • success:请求成功后的回调函数
  • dataType:响应回来的数据类型
    常用的数据类型:
    1、text 表示纯文本
    2、xml 表示xml数据
    3、json 表示JSON对象

jQuery中Ajax请求的进一步封装

Get方式的Ajax请求,无需再写请求的类型

$.get (url,data,callback,type)

POST方式的Ajax请求,与上面的类似

$.post(url,data,callback,type)

这两种的方式的type参数与$.ajax中的type参数略微有些差别

  • type:响应回来的数据类型

$.getJSON(url,data,callback):此方法默认为get请求,且响应回来的数据默认给你转化成了json对象类型.。因此无需我们填写请求方式和数据类型

注意:如果后台返回的不是正确的响应的数据类型,那么永远不执行回调函数success,而只执行error函数。这里需要注意,容易踩坑,前端的BUG没有提示修改起来很痛苦~

补充:

表单序列化 serialize():serialize() 可以把表单中的所有表单项的内容获取到,以name=valuer&name=value的形式拼接起来

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值