axios

概念 #

axios 有一点好,可以在浏览器和node环境中使用。

在浏览器中使用 ajax,在node中使用 http 发送请求。支持promise,可拦截可取消

快速入门 #

const axios = require('axios')
// url get
axios.get('/user?v=2').then(res=>{}).catche().finally()
// get 带参数
axios.get('/user',{params:{ID:1}}).then().catch().then()
// async/await
async go(){
  try{
    const res = await axios.get('/user?v=2')
  }catch(err){log(err)}
}

// post
axios.post('/user',{
  a:2,b:1
}).then().catch()

// 执行多个请求
function a1(){return axios.get()}
function a2(){return axios.get}
axios.all([a1(),a2()]).then(axios.spread((acct,perms)=>{}))

api #

axios(config) #

axios({
	method:'post',
	url:'',
	data:{
    a:1
  }
})

使用 stream 下载图片

axios({
  method:'get',
  url:'',
  responseType:'stream'
}).then(res=>{
  res.data.pipe(fs.createWriteStream(a.jpg))
})

axios(url[,config]) #

默认get

axios(url)

其他 #

  • axios.request(config)
  • axios.get(url[,config])
  • axios.delete(url[,config])
  • axios.head

创建一个实例 #

const i = axios.crate({
  baseURL:'',
  timeout:1000,
  headers:{}
})
i.get()

返回的结构 #

var res = {
  data:{},
  status:200,
  statusText:'OK',
  headers:{},
  config:{}
  request:{}
}

默认情况下,axios把 Javascropt 转为json,如果要使用application/x-www-form-urlencoded发送数据。

浏览器可以使用 qs库来编码

node里可以使用 querystring

[ {age:${b3}}

]