axios安装
npm install axios
axios基本用法
默认的get请求,参数用params追加,多个参数通过json对象的方式,例如params:‘{type:“home”,page:1}’
axios ( { url: 'https: / / api. videolog. net. cn/ baidu/ token', params: ''
} ) . then ( value = > { console. log ( "1.默认的get请求:" , value. data)
} )
post方式及添加参数data,data里可以是一个json对象
axios ( { url: 'https: / / api. videolog. net. cn/ baidu/ wenxin', method: 'POST', data : 'hello'
} ) . then ( value = > { console. log ( "1.默认的post请求:" , value. data)
} )
axios常用方法
axios. post ( "https://api.videolog.net.cn/baidu/wenxin" , "vue" ) . then ( value = > { console. log ( "2.post请求测试:" + value. data. data) } ) . catch ( function ( error) { console. log ( error) ; } ) ;
axios. get ( "https://api.videolog.net.cn" ) . then ( value = > { console. log ( "3.get请求测试" + value. data) } ) . catch ( function ( error) { console. log ( error) ; } ) ;
axios并发请求
多个请求全部完成后回调。使用all方法,合并多个请求。
axios. all ( [ axios. post ( "https://api.videolog.net.cn/baidu/wenxin" , "hello" ) , axios. get ( 'https: / / api. videolog. net. cn/ baidu/ token') ] ) . then ( results = > { console. log ( "4.两个网络请求全部完成后返回:" + results. at ( 0 ) . data. data) } )
axios配置和实例
axios. defaults. baseURL = "https://api.videolog.net.cn" ;
axios. defaults. timeout = 30000 ;
也可以不使用全局实例,而是单独根据不同的baseURL创建各自的实例。
import axios from "axios" ; const axios1 = axios. create ( { baseURL: "https://api.videolog.net.cn" , timeout: 5000 } )
const axios2 = axios. create ( { baseURL: "https://api.videolog.net.cn" , timeout: 5000 } )
export class HomeService { static loadNet ( ) { console. log ( "调用共用组件" ) axios1 ( { url: 'https: / / api. videolog. net. cn/ baidu/ token', params: ''} ) . then ( value = > { console. log ( "1.默认的get请求:" , value. data) } ) }
}
export { axios1
}
axios封装和拦截器
import axios from "axios" ; const axios1 = axios. create ( { baseURL: "https://api.videolog1.net.cn" , timeout: 5000 } )
const axios2 = axios. create ( { baseURL: "https://api.videolog.net.cn" , timeout: 5000 } )
axios1. interceptors. request. use ( config = > { console. log ( "请求成功拦截器:" , config) config. headers[ 'Content- Type'] = 'application/ json; charset= UTF- 8 'return config;
} , error = > { console. log ( "请求失败拦截器:" , error)
} ) ;
axios1. interceptors. response. use ( result = > { console. log ( "响应成功拦截器:" , result) return result;
} , error = > { console. log ( "响应失败拦截器:" , error) return Promise. reject ( error)
} ) ;
export class HomeService { static loadTest2 ( ) { return axios1 ( { url: '/ baidu/ token', params: ''} ) } }
export { axios1
}