24 Ajax
Ajax
1.1 什么是 Ajax?
AJAX 即“Asynchronous Javascript And XML”(异步 JavaScript 和 XML),是指一种创建交互式网页应用的
网页开发技术。
ajax 是一种浏览器异步发起请求。局部更新页面的技术
1.2、javaScript 原生 Ajax 请求
原生的 Ajax 请求,
1、我们首先要创建 XMLHttpRequest 对象
2、调用 open 方法设置请求参数
3、调用 send 方法发送请求
4、在 send 方法前绑定 onreadystatechange 事件,处理请求完成后的操作。
<script type="text/javascript">
//在这里使用javasc语言发起ajax请求,访问服务器AjaxServlet
function ajaxRequest() {
// 1、我们首先要创建XMLHttpRequest
var xmlhttprrequest = new XMLHttpRequest();
// 2、调用open方法设置请求参数
xmlhttprrequest.open("GET","http://localhost:8081/11_json/ajaxServlet?action=javaScriptAjax",true);
// 4、在send方法前绑定onreadystatechange事件,处理请求完成后的操作。
xmlhttprrequest.onreadystatechange = function () {
if (xmlhttprrequest.readyState == 4 && xmlhttprrequest.status == 200){
var jsonObj = JSON.parse(xmlhttprrequest.responseText);
//把响应的数据显示在页面上
document.getElementById("div01").innerHTML = "编号:"+jsonObj.id + "姓名:"+jsonObj.name;
}
}
//3、调用send方法发送请求
xmlhttprrequest.send();
}
</script>
创建一个 AjaxServlet 程序接收请求
public class AjaxServlet extends BaseServlet {
protected void javaScriptAjax(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
System.out.println("Ajax请求过来了");
Person person = new Person(1,"hh");
//json格式的字符串
Gson gson = new Gson();
String personJsonString = gson.toJson(person);
resp.getWriter().write(personJsonString);
}
}
1.3、JQuery 的 Ajax 请求(重点****)
四个 Ajax 请求方法
$.ajax 方法
$.get 方法
$.post 方法
$.getJSON 方法
一个表单序列化方法:serialize()表单序列化方法
如何使用上面的五个方法:
在 JQuery 中和 Ajax 请求有关的方法有四个
$.ajax 请求参数
url: 请求的地址
type : 请求的方式 get 或 post
data : 请求的参数 string 或 json
success: 成功的回调函数
dataType: 返回的数据类型 常用 json 或 text
下面的方法必须遵守参数的顺序
$.get 请求和$.post 请求
url:请求的 URL 地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
type:返回内容格式,xml, html, script, json, text。
Jquery 的$.getJSON
url:待载入页面的 URL 地址
data:待发送 Key/value 参数。
callback:载入成功时回调函数。
表单的序列化
serialize() 方法可以把一个 form 表单中所有的表单项。都以字符串 name=value&name=value 的形式进行拼接,省去我们很多不必要的工作。
由于$.get、$.post 和 getJSON 这三个方法的底层都是直接或者间接地使用$.ajax()方法来实现的异步请求的调用。所以我们以$.ajax()方法的使用为示例进行展示:
<script type="text/javascript">
$(function(){
// ajax请求
$("#ajaxBtn").click(function(){
$.ajax({
url:"http://localhost:8081/11_json/ajaxServlet",
data:"action=jQueryAjax",
type:"GET",
success:function (data) {
alert("服务器返回的数据是"+data);
$("#msg").html("ajax编号:"+data.id+"姓名"+data.name);
},
dataType:"json"
});
});
// ajax--get请求
$("#getBtn").click(function(){
$.get("http://localhost:8081/11_json/ajaxServlet","action=jQueryAjax",function () {
$("#msg").html("get编号:"+data.id+"姓名"+data.name);
},"json");
});
// ajax--post请求
$("#postBtn").click(function(){
$.post("http://localhost:8081/11_json/ajaxServlet","action=jQueryAjax",function () {
$("#msg").html("post编号:"+data.id+"姓名"+data.name);
},"json");
});
// ajax--getJson请求
$("#getJSONBtn").click(function(){
// 调用
$.getJSON("http://localhost:8081/11_json/ajaxServlet","action=jQueryGetJSON",function () {
$("#msg").html("post编号:"+data.id+"姓名"+data.name);
});
});
// ajax请求
$("#submit").click(function(){
// 把参数序列化
$.getJSON("http://localhost:8081/11_json/ajaxServlet","action=jQuerySerialize&"+$("#form01").serialize(),function () {
$("#msg").html("Serialize编号:"+data.id+"姓名"+data.name);
});
});
});
</script>
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)