AJAX学习
Ajax
的概念:
Ajax
用来实现客户端网页请求服务器的数据,当用户有操作时可以实时更新部分模块或者整个网页
先引入axios
库 官网:http://www.axios-js.com/
axios基本语法:
模板:
axios({
method: '',
url: '',
}).then((result) => {
//.then 用来指定请求成功之后的回调函数
// 形参中的result是请求成功之后的结果
});
then
方法(或回调函数)负责接受发过来的数据
属性区分大小写
axios GET 请求:
axios({
method: '请求的类型',
url: '请求的URL地址',
params: {
id: 1, bookname: '红楼梦'}
// params用于传递参数,可选
}).then((result) => {
})
Demo:为button
绑定一个click
事件并发送get
请求,注意params
可省
$('button').on('click', function() {
axios({
method: 'GET',
url: 'http://www.liulongbin.top:3006/api/getbooks',
params: {
id: 3
},
}).then(result => {
//then控制请求成功
console.log(result.data.data);
}).catch(err => {
//catch控制请求失败(扩展)
get
参数的本质就是把所有属性用=链接、&符号分隔、放到路径的最末尾(前面要加?)
Demo:
http://www.liulongbin.top:3006/getbook?id=1&bookname=红楼梦
注意不能有空格和中文等特殊字符,浏览器会对URL
的中文进行编码处理
编码和解码
axios的解构赋值
axios({
method: 'GET',
url: 'http://www.liulongbin.top:3009/api/getbooks'
}).then(({
data: res}) => {
// 从 .then(fn) 回调函数的形参中,解构赋值出 data 属性,重命名为 res
console.log(res)
})
因为ajax
拿的参数中最重要的就是data
,在then
回调函数中通过对象解构把data
的参数赋值到一个res
的变量中(名称随意),然后对这个json
进行操作
then
返回的数据:
axios POST 请求:
POST
请求一定得有参数,因为POST就是推数据给服务器
axios({
method: 'POST',
url: 'http://www.liulongbin.top:3009/api/addbook',
data: {
//post用的是data传递请求参数
bookname: '三体',
author: '刘慈欣',
publisher: '北京人民出版社'
},
}).then(({
data: res}) => {
console.log(res);
})
请求报文和响应报文
-
客户端发请求给服务器,请求报文规定数据格式
-
服务器回数据,响应报文规定数据格式
注意的是响应码和状态码不同,下面展示的是响应码
-
响应码由
http
协议制定,一般都约定俗成 -
状态码不唯一,在接收到的数据中,可以由后端人员自己定义;就好比客户端无法请求数据大部分都返回
404
响应状态码表示与服务器端的通信请求是否成功,而状态码表示业务处理的状态,一般会由后端给你写在接口文档里,供需要时查阅