created() {
/* get方法的两种写法 */
axios.get('/data.json',{ // http://localhost:8080/data.json?id=12
params:{
id:12
}
}).then((res)=>{
console.log(res)
})
axios({
method:'get',
url:'/data.json', /* 相对于index.html */
params:{
id:12
}
}).then(res => {
console.log(res)
})
}
2)post
post三个参数:url路径,请求数据,config
请求数据的两种方法:
form-data 表单提交(图片文件上传)
application/json
let data = {
id:12
}
// application/json 两种写法
axios.post('/post',data).then(res =>{
console.log(res)
})
axios({
method: 'post',
url:'/post',
data: data
}).then(res =>{
console.log(res)
})
// form-data
let formData = new FormData()// 首先创建一个formData格式的数据
for(let key in data){
formData.append(key, data[key]) // 添加
}
axios.post('post',formData).then(res =>{
console.log(res)
})
3)put和patch
// put请求
axios.put('/put',data).then(res=>{
console.log(res)
})
// patch
axios.put('/patch',data).then(res=>{
console.log(res)
})
4)delete
axios.delete('/delete', { // 只有两个参数url,config
params:{ // 在url上显示
id: 12
}
}).then(res=>{
console.log(res)
})
axios.delete('/delete', { // 只有两个参数url,config
data:{ // 不在url上传输
id: 12
}
}).then(res=>{
console.log(res)
})
axios({
methos:'delete',
url:'/delete',
params:{},
data:{}
}).then(res=>{
console.log(res)
})
2. axios并发请求
使用场景:需要请求多个接口,同时处理返回值
axios.all() 参数是数组,里面是一个个ajax请求
axios.spread() 作用是在axios.all()多个请求完成之后,分割请求返回值,把返回数据进行处理
axios.all(
[
axios.get('/data.json'),
axios.get('/city.json')
]
).then( // 回调函数不同
axios.spread((dataRes,cityRes)=>{
console.log(dataRes,cityRes)
})
)
三、axios方法深入
===============
1. 创建axios实例
类似于数组创建的let arr = new Array()
后端接口地址有多个,并且超时试长不一样,用实例请求会很方便
let instance = axios.create({ // axios实例
baseURL: 'http://localhost:8080',
timeout: 1000
})
let axios2 = axios.create({ // axios实例
baseURL: 'http://localhost:9090',
timeout: 5000
})
instance.get('/data.json').then(res=>{
console.log(res)
})
axios2.get('/data.json').then(res=>{
console.log(res)
})
2. 实例相关配置
let instance = axios.create({ // axios实例
baseURL: 'http://localhost:8080',
// 请求的域名/基本地址。会默认把baseurl拼接在相对路径前面
timeout: 1000,
// 设置请求超时试长,单位:ms。超时会阻塞后端内容,因此设计超时时长会控制资源释放
url: 'data.json', // 请求的路径。
method: 'get', // post get patch put delete
headers:{
token:'' // token识别登录人员信息,需要传递给后端
}, // 设置请求头
params: {}, // 会将请求参数拼接在url上
data: {}, // 把请求参数放在请求体
})
优先级:全局配置 < 实例配置 < 请求配置
// 1.axios全局配置
axios.defaults.timeout = 1000
axios.defulat.baseURL = 'http://localhost:8080'
// 2.axios实例配置
let axios2 = axios.create()
axios2.defaults.timeout = 3000
// 3.axios请求配置
axios2.get('/data.json',{
timeout: 9000
}).then(res=>{
console.log(res)
})
3. 具体使用方法
有两种请求接口:http://localhost:9090 和 http://localhost:9091
let real = axios.create({
baseURL: 'http://localhost:9090',
timeout: 1000,
})
let real1 = axios.create({
baseURL: 'http://localhost:9091',
timeout: 3000,
})
// 实例1请求使用到了:baseURL timeout url method(get) params
real.get('/contactList',{
params:{}
}).then(res=>{
console.log(res)
})
// 实例2请求使用到了:baseURL timeout(修改5000) url method(get) params
real1.get('/orderList',{
timeout: 5000
}).then(res=>{
console.log(res)
})
4. axios拦截器
拦截器:在请求或者相应被处理前拦截它们
两种:请求拦截器,相应拦截器,取消拦截器(了解)
拦截器两个参数:请求前的拦截函数,请求错误的拦截函数
请求错误:请求没有到达后端(404接口未找到 401请求超时)
响应错误:查询数据,数据库查无此人
区别:请求是否到达后端
axios.interceptors.request.use(config=>{
// 在发送请求前做些什么
return config
}, err=>{
// 在发送请求错误时做些什么
return Promise.reject(err)
})
// 响应拦截器
axios.interceptors.response.use(res=>{
// 请求成功对相应数据处理
return res
},err=>{
// 相应错误做些什么
return Promise.reject(err)
})
// 取消拦截器(了解)
let inter = axios.interceptors.request.use(config=>{
config.headers={
auth: true
}
return config
})
axios.interceptors.request.eject(inter)
5. axios错误处理
最后
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数初中级Android工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!
roid工程师,想要提升技能,往往是自己摸索成长,自己不成体系的自学效果低效漫长且无助。**
因此收集整理了一份《2024年Web前端开发全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
[外链图片转存中…(img-QZCfKHcM-1715311414803)]
[外链图片转存中…(img-ClMKRfZl-1715311414803)]
[外链图片转存中…(img-5RVJZJMg-1715311414803)]
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上Android开发知识点!不论你是刚入门Android开发的新手,还是希望在技术上不断提升的资深开发者,这些资料都将为你打开新的学习之门!
如果你觉得这些内容对你有帮助,需要这份全套学习资料的朋友可以戳我获取!!
由于文件比较大,这里只是将部分目录截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且会持续更新!