import axios from "axios"
1.用axios实现最简单的请求:
axios({
url:"http:111.222.333.444:8000"
method:"请求方式" //默认get
}).then(res =>{
//打印请求到的数据
console.log(res)
})
2.axios发送并发请求:
axios.all([axios({
url:"http:111.222.333.444:8000"
}),axios(
url:"http:222.333.666.555:800",
params:{
type:sell,
page:4}
)]).then(axios.spread((res1,res2)=>{
console.log(res1)
console.log(res2)
}))
3.全局配置:"
axios.defaults.baseURL = "http:111.222.333.555:8000"
axios.defaults.timeout = 5000
axios.all([axios({
url:"/home/multidata"
}),axios(
url:"/home/data",
params:{
type:sell,
page:4}
)]).then(axios.spread((res1,res2)=>{
console.log(res1)
console.log(res2)
}))
4当请求有不同的baseURL的时候;我们就不能用全局配置了;我们得创建一个axios实例:
const instancel = axios.creat({
//在这里传入对应的config
baseURL:"http:222.333.666.888:8000"
timeout:5000
})
instancel({
url:"/home/multidata"
}).then(res =>{
//在这里对请求到的结果进行处理
console.log(res)
})
instancel({
url:"/home/data",
params:{
type:"pop",
page:1
}
}).then(res =>{
console.log(res)
})
下面是对axios网络请求的一些封装方法;我们一般在用他的时候;都会封装成一个js文件
方法一:
export function request(config,success,failure){
//1.创建axios的实例
const instance = axios.create({
baseURL:"http://156.111.333.222:8000",
timeout:5000
})
instance(config)
.then(res =>{
console.log(res);
succcess(res);
})
.catch(err =>{
console.log(err);
failure(err);
})
}
上面的js文件封装之后我们就能在组件中通过回调函数拿到这个请求来的数据
import {request} from "上面封装好的js文件路径"
request({
url:"/home/data"
},(res) =>{
console.log(res)
},err =>{
console.log(err)
})
方法二:
export function request(config){
//1.创建axios的实例
const instance = axios.create({
baseURL:"http://111.999.333.222:8000",
timeout:5000
})
instance(config.baseConfig)
.then(res =>{
console.log(res);
config.succcess(res);
})
.catch(err =>{
console.log(err);
config.failure(err);
})
}
方法二封装好js文件后在组件中这样拿到数据:
import {request } from "方法二的js文件路径"
request({
baseConfig:{
},
success: function (res) {
},
failure: function (err) {
}
})
方法三:
export function request(config){
return new Promise((resolve,reject) =>{
// 1.创建axios的实例
const instance = axios.create({
baseURL:"http://162.222.666.333:8000",
timeout:5000
})
instance(config)
.then(res =>{
resolve(res)
})
.catch(err =>{
reject(err)
})
})
}
方法三封装好js文件之后 在组件中这样拿到数据
imort {request} from "方法三的js文件路径"
request({
url:"/home/multidata"
}).then(res =>{
console.log(res)
}).catch(err =>{
console.log(err)
})
//方法四:
export function request(config){
// 1.创建axios的实例
const instance = axios.create({
baseURL:"http://133.222.888.666:8000",
timeout:5000
})
//2.axios的拦截器;interceptors:译拦截器
axios.interceptors.request.use(config=>{
console.log(config);
return config
},err=>{
console.log(err);
})
axios.interceptors.response.use(res =>{
console.log(res)
return res.data
},error => {
// console.log(error)
})
//3.发送真正的网络请求
return instance(config)
}