1. ASynchronous JavaScript And XML 异步的JavaScript和XML.
2. AJAX不是新的编程语言,而是一种使用现有标准的新方法.
3. AJAX是与服务器交换数据并更新部分网页的技术,在不重新加载整个页面的情况下.
4. 异步和同步(客户端和服务器端相互通信的基础上):
客户端必须等待服务器端的响应。在等待的期间客户端不能做其他操作。
客户端不需要等待服务器端的响应。在服务器处理请求的过程中,客户端可以进行其他的操作。
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>原生的JS实现方式</title>
<script>
function fun(){
//创建核心对象
var xmlhttp;
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}
//建立连接
/**
参数:
1.请求方式:GET、POST
GET:请求参数在URL后拼接,send方法为空。
POST:请求参数在send方法中定义。
2.请求的URL;
3.同步或者异步请求:false(同步)、true(异步)。
*/
xmlhttp.open("GET","ajaxServlet?username=hzc",true);
//发送请求
xmlhttp.send();
//接收并处理来自服务器的响应结果
xmlhttp.onreadystatechange=function()
{
if (xmlhttp.readyState==4 && xmlhttp.status==200)
{
let responseText = xmlhttp.responseText;
alert(responseText);
}
}
}
</script>
</head>
<body>
<button onclick="fun()">发送异步请求</button>
</body>
</html>
1.$.ajax()
语法:$.ajax({键值对});
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>JQ $.ajax()实现方式</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
function fun() {
$.ajax({
url:"ajaxServlet",//请求路径
type:"POST",//请求方式
data:{"username":"hzc"},//请求参数
success:function (data) {
alert(data);
},//响应成功后的回调函数
error:function () {
alert("error!");
},//响应失败后的回调函数
dataType:"text"//设置接收到的响应数据的格式
});
}
</script>
</head>
<body>
<button onclick="fun()">发送异步请求</button>
</body>
</html>
2.$.get()和$.post()
语法:
$.get(url.[data],[callback],[type]);
url:请求路径
data:请求参数
callback:回调函数
type:响应结果类型
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Title</title>
<script src="js/jquery-3.3.1.min.js"></script>
<script>
function fun() {
$.get("ajaxServlet",{username:"hzc"},function (data) {
alert(data);
},"text");
}
</script>
</head>
<body>
<button onclick="fun()">发送异步请求</button>
</body>
</html>
package com.servlet;
import javax.servlet.ServletException;
import javax.servlet.annotation.WebServlet;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@WebServlet("/ajaxServlet")
public class AjaxServlet extends HttpServlet {
@Override
protected void doPost(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
String username = req.getParameter("username");
System.out.println(username);
resp.getWriter().write(username);
}
@Override
protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException {
this.doPost(req, resp);
}
}
原文:https://www.cnblogs.com/IamHzc/p/15081225.html