开头术语:
志同道合,希望我们旗鼓相当,
人各有志,那我们顶峰上详见。
大1.什么是AJAX?😦
1.全称 Asynchronous Javascript And xml
意思: 异步的 js 和 xml
一般这种请求通过js代码向服务器请求
A:代表异步
J:代表js代码
A:and:和
X:xml,一种数据传输和交换格式
异步提交优点:(快速的返回框架的一些数据,不会阻塞浏览器)😃
1.提高了用户的体验度
2.局部刷新,数据传输量比整体刷新小
使用场合:
1.搜索推荐
2.表单验证
3.前后端分离(分离后前后端的交互大部分使用Ajax的方式交互)
😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐 😐
Ajax的核心对象-异步对象(XMLHttpRequest)
2.1什么是XMLHttpRequest[ 简称 xhr ] xhr属于javasciript编码
3.xhr 的应用
1.方法 - open() (创建请求) !!!
作用: 创建请求
语法 :open(method,url,asyn)
参数: method:请求方式,取值 ‘GET’ 或 ‘POST’
url : 请求地址,字符串
asyn:是否采用异步的方式 - true 异步/ false 同步
例如:xhr.open(‘GET,’/SERVER’,true);
2.方法 - send (body) (发送请求)
作用:通知xhr向服务器发送请求
参数:
GET请求: body的值为null ->send(null)
POST请求:body的值为请求数据->send(“请求数据”)
EX:
如果是GET请求的话:body的值为null----->send(null)为空
这种请求的传参不是通过send方法来的而是通过 url中的字符串“SERVER”传递的
反观 POST ,send里面要带参数,而参数的格式与查询字符串类似:
名称 = 值 & 名称 = 值 & 名称 = 值
3. - readyState* ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||| 😃
作用:xhr状态 , 通过不同的xhr状态来表示xhr与服务器的交互情况,由0-4共5个值来表示5个不同的状态
状态 | 说明 |
---|---|
0 | 代理被创建,但尚未调用 open()方法。 |
1 | open()方法已经被调用。 |
2 | sebd()方法已经被调用,响应头已经被接收 |
3 | 响应体下载中…responseText 属性已经包含部分数据。 |
4 | 下载操作已完成 |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
EX:
> 说白了readyState就是表示xhr对象他是运行在哪个步骤的,因为你会发现他在不同的步骤,状态值是不一样的
4.属性 - responseText
作用:响应数据
5.属性 - status
作用:服务端的响应状态码
|
状态码 | 说明 |
---|---|
200 | 响应成功,xhr所有数据拿到了 |
404 | 请求资源不存在 |
500 | 服务器内部出现错误(你的代码有误) |
6.事件 - onreadystatechange
作用:每当xhr的readyState发生改变的时候都要触发的操作;
也称作回调函数;当readyState的值为4且status的值为200的时候,才可以获取响应数据
EX:
也就是说当这个事件发生时回调函数就会被调用,这就是事件的概念
3.AJAX的操作步骤
1.GET请求
图1.jpg
练习:注册框的 用户名检查
2.POST请求
图2.jpg
注意: Django中post需要传递csrf_token,否则触发响应码403,拒绝访问;
EX:
csrf_token:跨域请求,伪造攻击,为了防止需要获取。
获取csrf_token的方法如下(属于Django框架)
图3.jpg
大2. jQuery 对 Ajax 的支持*
$.ajax({})
图4.图5
大3. JSON
3.1 JSON 介绍
JOSN : javaScript Object Notation
定义:是一种轻量级的数据交换格式,js的一个语法子集;采用完全独立于变成语言的文本格式来储存和表示数据。易于人阅读和编写,有效的提升网络传输效率
场景:在ajax中,允许将 复杂格式的响应数据 构建成JSON 的格式再进行响应
:现在大多数都是json封装格式
3.2 JSON表现
- JSON表示单个对象(EX: 语法和python中的字典和数组贼像)
1.使用{}表示单个对象
2.在{}中使用key:value的形式来表示属性(数据)
3.Key必须要用“”引起来
4.vlaue 如果是字符串的话,也需要用“”引起来
2.jQuery中json的处理
图6
3.python中json处理
图7
4.Django中json的处理
图8
5.前段中json的处理
图9
6.ajax跨域
好了这就是ajax全部内容!!祝大家前程似锦!!
关注!点赞!每天跟着我学开源知识!!
作者&老木