1.ajax是什么?

ajax是一种在无需重新加载整个网页的情况下,能够更新部分网页的技术。
是一种能够与后端交互数据的技术。

2.原生JS实现方式

主要分为以下几步
其中请求方式分为两种,以下我们分开来写

get方式:
(如果需要传参的话,在url后面做字符串的拼接,比如’url?key=value’);
1.实例化ajax对象

var xhr = new XMLHttpRequest();

2.设置请求方式和请求地址

xhr.open('get', 'url')

3.发送请求

xhr.send();

4.注册回调函数

xhr.onload = function () {
                //请求成功,执行回调函数,执行响应体
                console.log(xhr.responseText) //相应内容
            }

get请求完整代码:

//1.实例化ajax对象
            var xhr = new XMLHttpRequest();
            //2.设置请求方式和地址
            xhr.open('get', 'url') //如果要传参的话,在url后面拼接
            //3.发送请求
            xhr.send();
            //4.注册回调函数
            xhr.onload = function () {
                //请求成功,执行回调函数,执行响应体
                console.log(xhr.responseText) //相应内容
            }

post方式 post方式与get不同的就是,需要设置请求头,以及请求参数写在send方法里

1.实例化ajax对象

var xhr = new XMLHttpRequest();

2.设置请求方式和请求地址

xhr.open('get', 'url')

3.设置请求头

xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded'); //固定语法

4.发送请求

xhr.send('请求参数');

5.注册回调函数

xhr.onload = function () {
                //请求成功,执行回调函数,执行响应体
                console.log(xhr.responseText) //相应内容
            }

post请求完整代码

//(1).实例化ajax对象
        var xhr = new XMLHttpRequest();
        //(2).设置请求方法和地址
        xhr.open('post', '接口url');
        //(3).设置请求头(post请求才需要设置)
        xhr.setRequestHeader('Content-type','application/x-www-form-urlencoded');
        //(4).发送请求 : 参数格式  'key=value' 
        xhr.send('请求参数');
        //(5).注册回调函数
        xhr.onload = function () {
            console.log(xhr.responseText);
        };

3.XMLHttpRequest 对象

XMLHttpRequest对象是ajax的基础,XMLHttpRequest 用于在后台与服务器交换数据。这意味着可以在不重新加载整个网页的情况下,对网页的某部分进行更新。目前所有浏览器都支持XMLHttpRequest
方法: 加粗为常用方法
abort() 停止当前请求
getAllResponseHeaders() 把HTTP请求的所有响应首部作为键值对返回
open(“method”, “url”, async) 参数1:请求方法(get,post) 参数2:请求url地址 参数3:true异步/false同步 (ajax默认是异步请求true)

send(content) 向服务器发送请求,post方式的话带参数进去
setRequestHeader(“header”, “value”) 设置请求头 固定格式
onreadystatechange 当状态值发生改变时触发
readyState 查看状态值 0-实例对象被创建,但是没用调用open方法
1-open()方法已经被调用
2-send()方法已经被调用,并且头部(请求头成功发送,无错误)和状态已经可以获取
3-请求的数据下载中
4-下载操作完毕
responseText 服务器的相应数据
responseXML 服务器的响应,表示为XML.这个对象可解析为DOM对象
status 服务器的状态码(500,404,200…)
statusText HTTP 状态码的相应文本