axios用法
2017-12-23 18:10
183 查看
1. 设置默认头信息
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded'
2. 创建请求拦截器 (POST请求配合QS)
// http request 拦截器 axios.interceptors.request.use(config => { if (config.method === 'post') { config.data = qs.stringify(config.data, {arrayFormat: 'brackets'}) } return config })
3. 创建响应拦截器 (使用Element UI提示错误信息)
// http response 拦截器 与后台提前定义正确code 错误的提示 axios.interceptors.response.use( response => { if (response.data.code === '200') { return response.data.data } else if (response.config.responseType === 'blob') { return response } else { Message.error(response.data.msg) return Promise.reject(response.data.msg) } }, error => { if (error.response) { switch (error.response.status) { case 401: // 返回 401 跳转到登录页面 router.push({ path: '/login' }) break case 500: router.push({ path: '/error/500' }) break case 404: router.push({ path: '/error/404' }) break case 504: router.push({ path: '/error/504' }) break } } return Promise.reject(error.response.data) } )
4. 使用get/post请求
// get请求 axios.get(`${base}/user/updatePwd`, {params: params}) // post请求 axios.post(`${base}/login`, params)
5. 使用axios post下载excel
axios.post(`${base}/auth/export`, params, { responseType: 'blob' }).then(res => { if (res.data) { if ('msSaveBlob' in navigator) { // 对IE和Edge的兼容 window.navigator.msSaveBlob(res.data, decodeURI(res.headers['content-disposition'].split('filename=')[1])) } else { let blob = res.data let a = document.getElementById('exportLog') let url = window.URL.createObjectURL(blob) let filename = decodeURI(res.headers['content-disposition'].split('filename=')[1]) var evt = document.createEvent('HTMLEvents') // 对firefox的兼容 evt.initEvent('click', false, false) // 对firefox的兼容 a.href = url a.download = filename a.dispatchEvent(evt) // 对firefox的兼容 a.click() window.URL.revokeObjectURL(url) } } })
相关文章推荐
- iOS 未读消息角标 仿QQ拖拽 简单灵活 支持xib(源码)
- iOS申请证书教程
- FFmpeg编译iOS静态库
- 仿ios的PickerView
- iOS 线程安全与锁
- 如何在BIOS里设置定时关机?
- iOS-VoIP Push Notification
- Nagios安装中遇到的问题点,记录一下
- 在iOS上支持LastPass密码填充的方法
- 在iOS上支持LastPass密码填充的方法
- IOS与安卓的区别
- ios breakpoint自动停留在main的解决办法
- iOS 算法~快速排序实现
- dell灵越7370 U盘装机 BIOS设置
- iOS开发——登录页面动画、转场动画
- iOS 内购的最新讲解
- ios-信任服务器证书
- JS判断ios系统的版本号
- ios下使用-webkit-overflow-scrolling:touch带来的bug
- iOS_TUTK推送需要的相关资料