什么是Ajax
Ajax 的全称是 Asynchronous Javascript And XML(异步JavaScript和XML)。
通俗的理解:在网页中利用 XMLHttpRequest 对象和服务器进行数据交互的方式,就是Ajax。
为什么学习 Ajax
之前所学的技术,只能把网页做的更美观漂亮,或添加一些动画效果,但是,Ajax 能让我们轻松实现网页与服务器之间的数据交互。
Ajax 典型应用场景
Ajax 的优点
Ajax 允许我们在不刷新整个网页的前提下,更新部分网页内容(局部加载)。
// 1. 创建请求对象 let xhr = new XMLHttpRequest(); // 2. 设置请求方法和请求的url接口地址 xhr.open('get', 'https://autumnfish.cn/api/joke/list?num=2', true); // 3. 监听响应事件,当得到响应式执行 xhr.onreadystatechange = function () { if (xhr.readyState == 4 && /^2\d{2}$/.test(xhr.status)) { console.log(xhr.responseText); } }; // 4. 发送请求,只有执行这步时才会发送上面设置的请求 xhr.send()
// 1. 创建请求对象 let xhr = new XMLHttpRequest(); // 2. 设置请求方法和请求的url接口地址 xhr.open("post", "http://www.liulongbin.top:3006/api/addbook"); // 3. 设置请求头(在复杂参数时必须使用) xhr.setRequestHeader("Content-type", "application/x-www-form-urlencoded", true) // 4. 监听响应事件,当得到响应式执行 xhr.onreadystatechange = function () { if (xhr.readyState == 4 && /^2\d{2}$/.test(xhr.status)) { console.log(xhr.responseText); } }; // 5. 发送请求并携带post参数,只有执行这步时才会发送上面设置的请求 xhr.send("bookname=test&author=brokyz&publisher=test");
浏览器中提供的 XMLHttpRequest 用法比较复杂,所以 jQuery 对 XMLHttpRequest 进行了封装,提供了一系列 Ajax 相关的函数,极大地降低了Ajax的使用难度。
jQuery 中发起 Ajax 请求最常用的三个方法如下:
$.get()
$.post()
$.ajax()
jQuery 中$.get()
函数的功能单一,专门用来发起 get 请求,从而将服务器上的资源请求到客户端来进行使用。
$.get()
函数的语法如下:
$.get(url, [data], [callback])
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
url | string | 是 | 要请求的资源地址 |
data | object | 否 | 请求资源期间要携带的参数 |
callback | function | 否 | 请求成功执行的回调函数 |
demo:
$(function () { $("button").on("click", function () { $.get("https://autumnfish.cn/api/joke/list", { num: 10 }, function (res) { console.log(res); }); }); });
jQuery 中$.post()
函数的功能弹一,专门用来发起 post 请求,从而向服务器提交数据。
$.post()
函数的语法如下:
$.post(url, [data], [callback])
参数名 | 参数类型 | 是否必选 | 说明 |
---|---|---|---|
url | string | 是 | 要提交数据的地址 |
data | object | 否 | 要提交的数据 |
callback | function | 否 | 请求成功执行的回调函数 |
demo:
$(function () { $("button").on("click", function () { $.post("https://mock.apifox.cn/m1/1301638-0-default/pet", { name: 'brokyz', status: 'sold' }, function (res) { console.log(res); }); }); });
使用$.ajax()
发起 GET 请求:
$(function () { $.ajax({ type: 'GET', url: 'https://autumnfish.cn/api/joke/list', data: {num: 10}, success: function(res) { console.log(res); } }) });
使用$.ajax()
发起 POST 请求:
$(function () { $.ajax({ type: 'POST', url: 'https://mock.apifox.cn/m1/1301638-0-default/pet', data: { name: 'brokyz', status: 'sold' }, success: function(res) { console.log(res); } }) });
表单在网页中主要负责数据采集功能。HTML中的