IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> 什么是Ajax? -> 正文阅读

[JavaScript知识库]什么是Ajax?

1. 什么是 Ajax

Ajax即是Asynchronous Javascript And XML(异步JavaScript和XML)是一种交互式网页应用的网页开发技术

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

原生的Ajax请求
1、我们首先要创建XMLHttpRequest
2、调用open方法设置请求参数
3、在send方法前绑定XMLHttpRequest事件, 处理请求完成后的操作
4、调用send方法发送请求

创建一个htl页面发送请求

		<script type="text/javascript">
			function ajaxRequest() {
// 				1、我们首先要创建XMLHttpRequest
                var xmlHttpRequest = new XMLHttpRequest();
// 				2、调用open方法设置请求参数
                //3个参数分别是: 请求方式、url、是否是异步请求
                xmlHttpRequest.open("get","http://localhost:8080/16_json_ajax_i18n/ajaxServlet?action=ajaxReq",true);


// 				4、在send方法前绑定onreadystatechange事件,处理请求完成后的操作。
                xmlHttpRequest.onreadystatechange = function () {
                    if (xmlHttpRequest.readyState == 4 && xmlHttpRequest.status == 200){
                        var responseText = xmlHttpRequest.responseText;
                        
                        //将json字符串转换为json对象
                        var jsonObj = JSON.parse(responseText);
                        
                        document.getElementById("div01").innerText = "编号: "+jsonObj.id + "姓名: " + jsonObj.name;
                    }
                }
// 				3、调用send方法发送请求
                xmlHttpRequest.send();
			}
		</script>

创建Servlet程序接收请求

public class AjaxServlet extends BaseServlet {
    protected void ajaxReq(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        System.out.println("ajax请求过来了");

        //创建一个对象
        Person person = new Person(1,"Tim");
        Gson gson = new Gson();
        String jsonStr = gson.toJson(person);

        //通过响应头写出json字符串
        response.getWriter().write(jsonStr);
    }
}

从上面看出,使用原生的javascript创建Ajax请求非常不方便,而且会有浏览器兼容问题,那我们在工作中如何处理Ajax请求,我们一般会使用javascript框架来解决,比如我们使用jQuery来进行处理

2. JQuery中Ajax请求

JQuery的4个Ajax请求
$.ajax
$.get
$.post
$.getJSON
serialize()表单序列化方法

在JQuery中与Ajax有关的有4个方法

$.ajax请求参数:

url : 请求的地址
type : 请求的方式
data : 请求的参数
success : 请求成功,响应的回调函数
dataType : 数据类型(text、html、script、xml、json)

$.get请求参数:

url : 请求的地址
data : 请求的参数
callback : 请求成功,回调函数
type : 数据类型(text、html、script、xml、json)

$.post请求参数:

url : 请求的地址
data : 请求的参数
callback : 请求成功,回调函数
type : 返回内容格式(text、html、script、xml、json)

$getJSON

url : 待载入页面的 URL 地址
data : 请求的参数
callback : 请求成功的回调函数

以下是测试JQuery的Ajax请求回调输出

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
	<head>
		<meta http-equiv="pragma" content="no-cache" />
		<meta http-equiv="cache-control" content="no-cache" />
		<meta http-equiv="Expires" content="0" />
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<title>Insert title here</title>
		<script type="text/javascript" src="script/jquery-1.7.2.js"></script>
		<script type="text/javascript">
			$(function(){
				$("#ajaxBtn").click(function(){
                    
                    // ajax请求
                    $.ajax({
                        url : "http://localhost:8080/16_json_ajax_i18n/ajaxServlet",
                        type : "POST",
                        data : "action=ajaxReq",
                        success : function (data) {
                            $("#ajaxReq").html("编号: "+ data.id + ", 名称: " + data.name);
                        },
                        dataType : "json"
                    });

				});

				// ajax--get请求
				$("#getBtn").click(function(){

				    //请求方式为GET的json传输
					$.get("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=ajaxReq",function (get) {
                        $("#ajaxReq").html("get 编号: "+ get.id + ", 名称: " + get.name);
                    },"json");
					
				});
				
				// ajax--post请求
				$("#postBtn").click(function(){
					// post请求
                    $.post("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=ajaxReq",function (get) {
                        $("#ajaxReq").html("post 编号: "+ get.id + ", 名称: " + get.name);
                    },"json");
					
				});

				// ajax--getJson请求
				$("#getJSONBtn").click(function(){
					// getJSON()方法: 请求方式为GET、数据类型为JSON
                    $.getJSON("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=ajaxReq",function (get) {
                        $("#ajaxReq").html("getJSON 编号: "+ get.id + ", 名称: " + get.name);
                    });

				});

				// ajax请求
				$("#submit").click(function(){
					// serialize()方法能够把表单序列化
                    var serializeForm = $("#form01").serialize();
                    alert(serializeForm); //username=user123&password=qwerrt&single=Single&multiple=Multiple&multiple=Multiple3&check=check2&radio=radio1
                    $.getJSON("http://localhost:8080/16_json_ajax_i18n/ajaxServlet","action=ajaxReq&"+serializeForm,function (get) {
                        $("#ajaxReq").html("serializeForm&getJSON 编号: "+ get.id + ", 名称: " + get.name);
                    });
				});
			});
		</script>
	</head>
	<body>
		<div>
			<button id="ajaxBtn">$.ajax请求</button>
			<button id="getBtn">$.get请求</button>
			<button id="postBtn">$.post请求</button>
			<button id="getJSONBtn">$.getJSON请求</button>
		</div>
		<br/><br/>
        <div id="ajaxReq"></div>
		<form id="form01" >
			用户名:<input name="username" type="text" /><br/>
			密码:<input name="password" type="password" /><br/>
			下拉单选:<select name="single">
			  	<option value="Single">Single</option>
			  	<option value="Single2">Single2</option>
			</select><br/>
		  	下拉多选:
		  	<select name="multiple" multiple="multiple">
		    	<option selected="selected" value="Multiple">Multiple</option>
		    	<option value="Multiple2">Multiple2</option>
		    	<option selected="selected" value="Multiple3">Multiple3</option>
		  	</select><br/>
		  	复选:
		 	<input type="checkbox" name="check" value="check1"/> check1
		 	<input type="checkbox" name="check" value="check2" checked="checked"/> check2<br/>
		 	单选:
		 	<input type="radio" name="radio" value="radio1" checked="checked"/> radio1
		 	<input type="radio" name="radio" value="radio2"/> radio2<br/>
		</form>			
		<button id="submit">提交--serialize()</button>
	</body>
</html>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2021-09-18 10:03:42  更:2021-09-18 10:04:31 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/18 23:09:44-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码