Ajax学习笔记(四)--- jQuery的 ajax 操作

news/2024/7/11 0:12:43 标签: ajax, jquery

ajax_2">一、$.ajax()

1、概念

​ 原生的 ajax 发送请求时,操作繁琐,代码量多。jQuery对这些操作进行了封装,使操作步骤更加简单,其中最基本、最底层的方法就是 $.ajax() 方法 。

2、常用的方法参数

名称描述
url请求地址,默认为当前页面
data发送到服务器的请求参数
type请求方式,get 或 post
async布尔值,表示请求是否异步处理。默认是 true
jsonp在一个 jsonp 请求中重写回调函数的名称
jsonpCallback在一个 jsonp 请求中指定回调函数的名称
contentType发送数据到服务器时所使用的内容类型。默认是:“application/x-www-form-urlencoded”。
timeout设置本地请求超时时间
beforeSend()发送请求前运行的函数。
success()请求成功时执行的函数
error()请求失败时执行的函数
complete()请求完成时运行的函数(在请求成功或失败之后均调用,即在 success 和 error 函数之后)

3、基本使用

<button id="btn">发送请求</button>
	<script src="/js/jquery.min.js"></script>
	<script>
		var params = {name: 'wangwu', age: 300}
		$('#btn').on('click', function () {
			$.ajax({
				// 请求方式
				type: 'post',
				// 请求地址
				url: '/user',
				// 向服务器端发送的请求参数
				// name=zhangsan&age=100
				// data: {
				// 	name: 'zhangsan',
				// 	age: 100
				// },
				data: JSON.stringify(params),
				// 指定参数的格式类型
				contentType: 'application/json',
				// 请求成功以后函数被调用
				success: function (response) {
					// response为服务器端返回的数据
					// 方法内部会自动将json字符串转换为json对象
					console.log(response);
				}
			})
		});
	</script>

4、发送 jsonp 请求

	<button id="btn">发送请求</button>
	<script src="/js/jquery.min.js"></script>
	<script>
        // 定义的全局作用域的函数
		function fn (response) {
			console.log(response)
		}
		$('#btn').on('click', function () {
			$.ajax({
				url: '/jsonp',
				// 向服务器端传递函数名字的参数名称
				jsonp: 'cb',
                // 指定函数名称
				jsonpCallback: 'fn',
				// 代表现在要发送的是jsonp请求
				dataType: 'jsonp',
				success: function (response) {
					console.log(response)
				}
			})
		});
	</script>

5、serialize() / serializeArray()

概念:

​ serialize() 方法可以将 jQuery 获取的表单元素的数据自动拼接成参数字符串的形式。只会将提交成功的表单元素内容序列化为字符串,提交失败的表单元素会被放弃。而且想要表单元素的值包含到序列字符串中,元素必须包含 name 属性。

​ serializeArray() 方法是将 jQuery 获取的表单元素的数据 拼接成一个对象数组,数组元素具有两个属性:name 和 value 。

案例代码:
<form id="form">
	<input type="text" name="username">
	<input type="password" name="password">
	<input type="submit" value="提交">
</form>
<script src="/js/jquery.min.js"></script>
<script type="text/javascript">
	$('#form').on('submit', function () {
		// 将表单内容拼接成字符串类型的参数
		// var params = $('#form').serialize();
		// console.log(params)
		serializeObject($(this));
		return false;
	});
    
	// 将表单中用户输入的内容转换为对象类型
	function serializeObject (obj) {
		// 处理结果对象
		var result = {};
		// [{name: 'username', value: '用户输入的内容'}, {name: 'password', value: '123456'}]
		var params = obj.serializeArray();

		// 循环数组 将数组转换为对象类型
		$.each(params, function (index, value) {
			result[value.name] = value.value;
		})
		// 将处理的结果返回到函数外部
		return result;
	}
	</script>

二、$.get()

1、概念

​ $.get(URL,[data],callback); 第一个参数是要请求的地址,第二个参数是要发送到服务器的参数数据,可以不写,第三个参数是请求成功后多执行的函数。

​ 是将$.ajax() 二次封装的结果。

2、案例代码

<button id="btn">发送请求</button>
	<script src="/js/jquery.min.js"></script>
	<script>
		$('#btn').on('click', function () {
			$.get('/base', 'name=zhangsan&age=30', function (response) {
			 	console.log(response)
			})
		});
	</script>

三、$.post()

1、概念

​ $.post(URL,[data],callback); 第一个参数是要请求的地址,第二个参数是要发送到服务器的参数数据,可以不写,第三个参数是请求成功后多执行的函数。

​ 是将$.ajax() 二次封装的结果。

2、案例代码

	<button id="btn">发送请求</button>
	<script src="/js/jquery.min.js"></script>
	<script>
		$('#btn').on('click', function () {
			$.post('/base', function (response) {
				console.log(response)
			})
		});
	</script>

四、全局事件

ajaxStart_174">1、ajaxStart()

概念:

ajaxStart() 方法在 AJAX 请求发送前执行函数。它是一个 Ajax 事件。无论在何时发送 Ajax 请求,jQuery 都会检查是否存在其他 Ajax 请求。如果不存在,则 jQuery 会触发该 ajaxStart 事件。在此时,由 .ajaxStart() 方法注册的任何函数都会被执行。

案例代码:
$("#loading").ajaxStart(function(){
  $(this).show();
});

ajaxStop_188">2、ajaxStop()

概念:

ajaxStop() 方法在 AJAX 请求结束时执行函数。它是一个 Ajax 事件。无论 Ajax 请求在何时完成 ,jQuery 都会检查是否存在其他 Ajax 请求。如果不存在,则 jQuery 会触发该 ajaxStop 事件。在此时,由 .ajaxStop() 方法注册的任何函数都会被执行。

案例代码:
$("div").ajaxStop(function(){
  alert("所有 AJAX 请求已完成");
});

五、其他常用方法

方法描述
load()从服务器加载html数据,然后把返回到 HTML 放入匹配元素。
$.getJSON使用 GET 请求从服务器加载 JSON 编码数据。
$.getScript使用 GET 请求从服务器加载 JavaScript 文件,然后执行该文件。
abort()可以中途中止ajax请求。

http://www.niftyadmin.cn/n/803601.html

相关文章

常用的 Git 命令汇总

一、日常使用&#xff08;最基本的&#xff09; ​ 一般来说&#xff0c;日常使用上面那几个命令就足够了&#xff0c;但是人无远虑必有近忧&#xff0c;把一些比较常用的 git 命令先整理一下&#xff0c;存下来总是没错的。 Reomte — 远程git仓库。 Repository — 本地仓库…

URL地址的两种格式

1、传统格式 格式&#xff1a;scheme://host:port/path?query#fragment ​ ① scheme&#xff1a;协议。例如http、https、ftp等&#xff08;必写&#xff09;。 ​ ② host&#xff1a;域名或IP地址&#xff08;必写&#xff09;。 ​ ③ port&#xff1a;端口号&#xf…

Vue学习笔记(四)--- 前后端交互基础和Promise

一、前后端交互基础 1、概念 ​ 什么是前后端交互&#xff1f;其实就是指前端通过接口&#xff0c;向后端发送请求&#xff0c;后端接收到请求之后&#xff0c;返回相应的数据&#xff0c;前端接收到数据后&#xff0c;再根据数据的内容&#xff0c;做出相应的展示或跳转的这…

Vue学习笔记(五)--- fetch、axios、async和await

一、fetch 1、概念 ​ Fetch 是新的 ajax 解决方案&#xff0c;是 XMLHttpRequest 的升级版&#xff0c;利用原生 js 发送请求。fecth 的功能与 XMLHttpRequest 基本相同&#xff0c;不同之处有&#xff1a;首先fecth 会返回 Promise 对象&#xff0c;不使用回调函数&#xf…

Vue学习笔记(六)--- 前端路由 Vue Router

一、路由 1、概念 ​ 路由本质上来说就是一种对应关系&#xff0c;比如说我们在浏览器中输入不同的 url 地址&#xff0c;我们就能访问不同的资源&#xff0c;那么这 url 地址与资源之间的对应关系&#xff0c;就是路由。 2、分类 ① 后端路由 ​ 后端路由是通过服务器实现…

前端工程化(一)--- ES6模块化

一、前端工程化概述 ​ 前端工程化是指&#xff1a;在企业级的前端项目开发中&#xff0c;把前端所需要的工具、技术、流程、经验等进行规范化和标准化。使前端开发自成体系&#xff0c;拥有一套标准的开发方案和流程。目前主流的前端工程化解决方案有&#xff1a;webpack 和 …

IHS .kdb转crt,key

IHS .kdb转crt,key参考文档:http://www-01.ibm.com/support/docview.wss?uidswg21395327环境:IHS-7.0.0.27java-1.6一.将IHS 密钥库.kdb导出为.p121.用Ikeyman打开Key文件2.export PKCS12文件类型 输入PKCS12文件的password注意:在导出过程中,如果遇到如下错误, restricted p…

前端工程化(二)--- webpack

一、概念 ​ webpack 是目前十分流行的前端项目构建工具&#xff08;打包工具&#xff09;&#xff0c;提供了友好的模块化支持&#xff0c;以及代码压缩混淆、处理 js 兼容性问题、性能优化等强大功能&#xff0c;大大提高了开发效率。目前大多企业的前端项目都是基于 webpac…