Axios基本用法

Axios基础

常见请求方式

GET 从客户端请求数据

POST 向服务器添加新数据

PUT 更新服务器端已存在的数据

DELETE 删除服务器端的数据

只是就一般而言

常见参数类型

  1. query参数(查询字符串参数)

    www.bing.com?name=user&id=1

    编码格式:urlencoded

  2. params参数

    www.bing.com/name/user/id/1

  3. 请求体参数

    urlencoded格式:

    name=user&age=18

    Content-Type:www.bing.com

    json格式:

    {“name”:“user”,“id”:“1”}

    Content-Type:www.bing.com

注意

get请求没有请求体

api-doc可以生成api接口文档

安装

$ npm i axios

常用请求

GET

const axios = require('axios');

// 携带query参数
axios.get('/user?ID=12345')
  .then(
	(response)=>{response},//参是服务器响应对象
	(error)=>{error}//参是错误对象
)
  
// 携带query参数完整版
axios( {
    url:'/user',
    method:'GET',
    //注意!是params携带qurey参数
    params: {
      ID: 12345
    }
  })
.then(function (response) {
    // 处理成功
    console.log(response);
})
.catch(function (error) {
    // 处理错误
    console.log(error);
})
.then(function () {
    // 总是会执行
});

//携带params参数
axios( {
    url:'/user/12345',
    method:'GET',
  })//...

POST

axios.post('/user', {
    //默认是json编码
    firstName: 'Fred',
    lastName: 'Flintstone'
  })
  .then(function (response) {
    console.log(response);
  })
  .catch(function (error) {
    console.log(error);
  });
//完整版写法
axios({
  method: 'post',
  url: '/user',
  data: {
    //默认是json编码
    firstName: 'Fred',
    lastName: 'Flintstone'
  }
});
//urlencoded编码
axios({
  method: 'post',
  url: '/user',
  data: 'firstName: Fred,lastName: Flintstone'
});

多个并发请求

function getUserAccount() {
  return axios.get('/user/12345');
}

function getUserPermissions() {
  return axios.get('/user/12345/permissions');
}

Promise.all([getUserAccount(), getUserPermissions()])
  .then(function (results) {
    const acct = results[0];
    const perm = results[1];
});

常用配置项

//全局配置
axios.defaults.timeout = 30000//配置超时时间
axios.defaults.headers = {}//携带请求头//请求头是一种令牌,可以标识自己的身份,一般用于权限管理
axios.defaults.baseURL = 'https://www.bing.com'//配置默认请求地址

//局部配置
axios( {
    url:'/user',
    method:'GET',
    params: {},
    timeout:30000,//配置超时时间
    headers:{},//携带请求头
    responseType:'json',//配置相应数据格式,默认json
})

又一个axios

新的axios没有取消请求和批量发请求的方法

const axios2 = axios.creact({
    //全局配置
    axios.defaults.timeout : 30000//配置超时时间
    axios.defaults.headers : {}//携带请求头//请求头是一种令牌,可以标识自己的身份,一般用于权限管理
    axios.defaults.baseURL : 'https://www.zcool.com.cn'//配置默认请求地址
})

axios拦截器

axios.interceptors.request.use((config)=>{
    //一般在这里加些特殊的请求头
    config.headers.token = ''
    return config//请求配置项
})

axios响应拦截器

axios.interceptors.respones.use(
	response=>{
        return response.data
    }
    error=>{
    	//可以在这里对错误进行统一处理
    	if(axios.isCancel(error)){
            console.log('用户取消了请求,原因是',error.massage)
		}else{}
    	return Promise.reject(err)//正常返回错误
	    return new Promise(()=>{})

		
    }
)

中断请求

axios({
    url:''
    cancelToken:new axios.CancelToken((c)=>{//参1是一个函数
        c('任性,就是要取消')//取消请求,可以赋值到全局到外面调用
    })
})
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值