[Axios] axios的请求合并以及参数配置

axios的请求合并以及参数配置

 
参考简书1

参考简书2

 

  • 并发请求 – 处理并发请求的助手函数

    • axios.all(iterable) – iterable是一个可以迭代的参数如数组等
    let sendAry = [
        axios.get('get获取的地址1'),
        axios.get('get获取的地址2'),
        axios.post('post获取的地址')
    ];
    //=>三个请求都完成才做一些事情(可以基于ALL实现)
    axios.all(sendAry).then(result => {
        console.log(result);//=>输出是一个数组,分别存储每一个请求的结果
        let [resA, resB, resC] = result;
    });
    
    • axios.spread(callback) – callback要等到所有请求都完成才会执行
    module.exports = function spread(callback) {
        return function wrap(arr) {
            return callback.apply(null, arr);
        };
    };
    let wrap = axios.spread(() => {
    });
    axios.all(sendAry).then(axios.spread((resA, resB, resC) => {
    //=>RES-A/-B/-C分别代表三次请求的结果
    //=>原理是JS中的柯理化函数
    }));
    
  • 配置config来发送请求

    • axios(config)
    //发送一个`POST`请求
    axios({
        method:"POST",
        url:'post请求地址',
        data:{
            firstName:"Fred",
            lastName:"Flintstone"
        }
    });
    
    • axios(url[,config])
    //发送一个`GET`请求(默认的请求方式)
    axios('get请求地址');
    
  • 请求方式的别名

axios.request(config);

axios.get(url[,config]);

axios.delete(url[,config]);

axios.head(url[,config]);

axios.post(url[,data[,config]]);

axios.put(url[,data[,config]])

axios.patch(url[,data[,config]])
  • 初始化常用配置

    • baseURL – 默认地址
    axios.defaults.baseURL = '地址';
    
    • validateStatus – 状态码,回复状态resolve或者reject promise

      • 默认状态码
      validateStatus:function(status){
      	return status >= 200 && status <300;//default
      }
      
      • 自定义成功失败规则 – resolve/reject
      axios.defaults.validateStatus = function validateStatus(status) {
          //=>自定义成功失败规则:RESOLVE / REJECT(默认规则:状态码以2开头算作成功)
          return /^(2|3)\d{2}$/.test(status);
      };
      
    • timeout – 延迟时间

    axios.defaults.timeout = 3000;
    
    • headers – 设置请求头信息
    headers: {'X-Requested-With':'XMLHttpRequest'}
    
    • params – GET传参
    axios.defaults.params={};//=>GET传参
    
    • data – POST传参
    axios.defaults.data={};//=>POST传参
    
    • 支持格式 – 默认RAW – 常用URL-ENCODEED
    //设置在POST请求中基于请求主体向服务器发送内容的格式,默认是RAW,项目中常用的是URL-ENCODEED格式
    axios.defaults.headers['Content-Type'] = 'appliction/x-www-form-urlencoded';
    
    • common – 当实例创建时候修改配置
    axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
    
    • 设置响应拦截器 – 分别在响应成功和失败的时候做一些拦截处理(在执行成功后设定的方法之前,先会执行拦截器中的方法)
    axios.interceptors.response.use(function success(result) {
        return result.data;
    }, function error() {
    })
    
    • transformRequest – 允许在请求数据发送到服务器之前对其进行更改
    axios.defaults.transformRequest = data => {
        //=>DATA:就是请求主体中需要传递给服务器的内容(对象)
        let str = ``;
        for (let attr in data) {
            if (data.hasOwnProperty(attr)) {
                str += `${attr}=${data[attr]}&`;
            }
        }
        return str.substring(0, str.length - 1);
    };
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Axios 是一个基于 Promise 的 HTTP 请求客户端,可用于浏览器和 Node.js 环境中。Axios 通过一个简单易用的 API 提供了对 HTTP 请求和响应的支持,包括拦截器、取消请求、并发请求等功能。 Axios 的 POST 请求参数主要可以通过两种方式传递,分别是通过配置参数传递和通过请求体传递。具体区别如下: 1. 通过配置参数传递:这种方式可以将请求参数通过配置对象的 data 属性传递,例如: ``` axios.post('/user', { firstName: 'John', lastName: 'Doe' }) .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); ``` 在这个例子中,请求参数是一个包含 firstName 和 lastName 属性的对象,Axios 会将其转换为 JSON 格式,并通过 POST 请求发送给服务器。这种方式通常用于发送较小的请求参数。 2. 通过请求体传递:这种方式可以将请求参数通过请求体传递,例如: ``` axios.post('/user', 'firstName=John&lastName=Doe') .then(function (response) { console.log(response); }) .catch(function (error) { console.log(error); }); ``` 在这个例子中,请求参数是一个 URL 编码的字符串,Axios 会将其作为请求体发送给服务器。这种方式通常用于发送较大的请求参数,例如上传文件等。 总之,Axios 的 POST 请求参数可以通过配置参数传递和通过请求体传递两种方式实现。开发者可以根据实际需求选择不同的方式进行参数传递。同时,Axios 还支持使用 FormData 对象上传文件等操作。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值