原生ajax请求
原生发送ajax大致可分为5步:
- 实例化
XMLHttpRequest对象。 
XMLHttpRequest()是内置的JavaScript对象。它是浏览器提供的原生API,无需任何额外的库或框架。你可以直接在JavaScript代码中使用XMLHttpRequest()对象,而无需进行任何安装或导入。
- 设置请求方法和地址。
 
- 使用
open()方法设置 
- 设置请求头
 
- 可以省略 如果后端需要,就要设置,不需要,设置了也没关系,可以自定义
 setRequestHeader()
- 注册回调函数
 - 发送请求
 
send()
示例:
1  |  | 
xhr.readyState
表示
ajaxxhr当前的状态码。返回值是 0、1、2、3、4

xhr.status
xhr.status它实际上就是http状态码- 304: 资源未修改
 - 协商缓存: 两个请求头:一个是 
If-Modified-since/If-None-match - 览器在发送请求的时候,附加一个请求头,去问服务器,资源有没有改动。
 - 服务器,看到了这个请求头, 就会去它自己的本地查看一下是否修改,如果没有修改,返回
304。 - 告诉浏览器,资源没有修改,你可以直接用上次请求的那个资源。
 
xhr的load
load表示的是readyStateChange为4即为load事件, 一次ajax请求,只会触发一次。
示例:
1  |  | 
- 就只是改变了监听事件
 xhr.response是根据响应头里面的content-type自动解析的,一般是二进制的数据,音视频xhr.responseText一般是文本数据,比如html,json,纯文本。
原生Ajax-get-请求传参
- 原生的
ajax,get没有params,所以,直接拼接到url上。 - 查询字符串 queryString url?key=val&key2=val2
 
示例:
1  |  | 
- 直接拼接在
open()方法url后面 
原生Ajax-post-请求传参
- 如果是
post请求,原生ajax,需要设置一个请求头,告诉后端,我发送的数据是什么格式的。 - 后端接口文档中写了需要什么样格式的数据!,我们照着设置就好了
 
示例:
1  |  | 
- 请求参数写在
send()方法中 
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 CJJJX's BLOG!
