main.js
import axios from 'axios'
axios({
url:'http://xxxx'
}).then(res => {
console.log(res);
})
axios.all([axios({
url:'xxx'
}),axios({
url:'yyy',
params: {
type:'sell',
page:5
}
})])
.then(res => {
console.log(res);
})
axios.spread()
axios.all([axios({
url:'http://xxx'
}),axios({
url:'http://yyy',
params: {
type:'sell',
page:5
}
})])
.then(axios.spread((res1,res2) => {
console.log(res1);
console.log(res2);
}))
在上面的示例中,我们的BaseURL是固定的。
axios.defaults.baseURL = '123.200....'
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
eg:这样同样能拿到结果
axios.defaults.baseURL = 'http://xxx'
axios({
url:'/home/multidata'
//更多配置选项
}).then(res => {
console.log(res);
})
常见的配置选项:https://github.com/axios/axios : Request Config
请求地址 | url: ‘/user’ |
请求类型 | method: ‘get’ |
请求路径 | baseURL: ‘https://some-domain.com/api/’ |
请求前的数据处理 | transformRequest: [function (data){}] |
请求后的数据处理 | transformResponse: [function (data){}], |
自定义请求头 | headers: {‘X-Requested-With’: ‘XMLHttpRequest’} |
URL查询对象 | params:{} |
延时 | timeout: 1000 |
跨域是否带token | withCredentials: false |
…
注意post请求要把参数放到请求体data里,get不用
为了应对不在同一个ip地址 创建对于的axios的实例
const instance1 = axios.create({
baseURL:'http://xxx',
})
instance1({
url:'/home/multidata'
}).then(res => {
console.log(res);
})
instance1({
url:'/home/data',
params:{
type:'pop',
page:1
}
}).then(res => {
console.log(res);
})
//每个实例都有自己独立的配置
const instance2 = axios.create({
baseURL:'...',
})
request.js
//导出的形式使用函数 方便调用
import axios from 'axios'
export function request(config) {
//1.创建实例
const instance1 = axios.create({
baseURL:'http://152.136.185.210:8000/api/n3'
})
//发送真正的网络请求
return instance1(config) //本身返回promise 直接return
}
使用
import {request} from './network/request'
request({
url:'/home/multidata'
}).then(res => {
console.log(res);
}).catch(err => {
console.log(err);
})
axios提供了拦截器,用于我们在发送每次请求或者得到响应后进行对应的处理。
四种:请求成功/失败、响应成功/失败
请求拦截:
//导出的形式使用函数 方便调用
import axios from 'axios'
export function request(config) {
//1.创建实例
const instance1 = axios.create({
baseURL:'http://152.136.185.210:8000/api/n3'
})
//2.拦截器 axios.interceptors是全局 这里使用局部
instance1.interceptors.request.use(a => {
// console.log(a); //打印的都是配置信息
//比如每次发送网络请求 都希望显示请求图标
//比如加上header
//某些网络请求(登录)必须携带一些特殊信息 如token 如果没有就跳转页面让用户先登录
return a; //必须返回 不然会请求失败
},err => {
console.log(err);
})
//3.发送真正的网络请求
return instance1(config) //本身返回promise 直接return
}
响应拦截:
instance1.interceptors.response.use(res => {
return res.data
},err => {
console.log(err);
})
本文地址:https://blog.csdn.net/qq_36663526/article/details/107566053
如对本文有疑问, 点击进行留言回复!!
MFC的静态库.lib、动态库.dll(包含引入库.lib)以及Unicode库示例
CTF 刷题记录(一) 白云新闻搜索(手动与自动化SQL注入)
javascript如何使用函数random来实现课堂随机点名方法详解
网友评论