一、原生js请求写法

(1)使用XMLHttpRequest

        主要分三步:

  1. 实例化XMLHttpRequest对象,注意需要考虑早期的IE;
  2. 连接服务器和发送请求
  3. 接收响应数据
// 创建XHR对象,XMLHttpRequest()其实就是http请求
var xhr = new XMLHttpRequest();
//监听xhr对象的状态修改事件,即监听onreadystatechange事件
xhr.onreadystatechange = function () {
    //判断服务器返回的状态信息是否全等于4且http响应状态码是否等于200;
    if (xhr.readyState === 4 && xhr.status === 200) {
        //打印JSON字符串形式的服务器响应数据;
        console.log(xhr.responseText);
        //检测数据类型返回string
        console.log(typeof xhr.responseText);
    }
}

//打开到服务器的连接
//xhr.open('请求方式','请求地址',同步或者异步(同步为true))
xhr.open("GET","http://www.liulongbin.top:3006/api/getbooks",true)

//可设置请求头(具体可百度)
//xhr.setRequestHeader("",)

//注册回调函数,即请求成功后做什么
xhr.onload=function(){
    if(this.status==200){
        var res=this.response;
    }
};

// 调用send函数,发起请求    
xhr.send()

        而axios则基于原生js接口请求方式的插件,将固定值都换成变量,使用户不用自己再封装请求,但axios是异步请求,添加了promise,具体可以再了解一下promise。


二.axio接口请求的六种常见方式:

1、Get 向特定资源发出请求(请求指定页面信息,并返回实体主体)

2、Post 向指定资源提交数据进行处理请求(提交表单、上传文件),又可能导致新的资源的建立或原有资源的修改

3、Put 向指定资源位置上上传其最新内容(从客户端向服务器传送的数据取代指定文档的内容)

4、Head 与服务器所与get请求一致的相应,响应体不会返回,获取包含在小消息头中的原信息(与get请求类似,返回的响应中没有具体内容,用于获取报头)

5、Delete 请求服务器删除request-URL所标示的资源*(请求服务器删除页面)

6、opions 返回服务器针对特定资源所支持的HTML请求方法 或web服务器发送*测试服务器功能(允许客户端查看服务器性能)

三、未封装时的写法

1、GET

 2、POST

        以上如果写在同一个文档中,他是同步进行的,万一要上一个请求进行后下一个请求再进行就不行,于是有了并发写法。

3、并发

 此时res返回的数据是一个数组,0为第一个接口的数据,1为第二个接口的数据,以此类推,但一直放在文档里容易乱,于是我们把它封装出来,将重复的部分拿出来

4、封装

request.js文件里可以放axios的请求拦截和响应拦截器。

请求拦截器可以放头文件请求判断等,以此判断登录状态;响应拦截器可以在接口出问题时报错,有相应的error

四、封装后相应在js文件中的写法

1、GET

url写地址,method写方式,形参必须是Parmas,写别的不能用增强写法

2、POST

 3、DELETE

Logo

前往低代码交流专区

更多推荐