axios在Vue中的简单应用(一)
1、安装axios:
npm install --save axios vue-axios
2、安装qs:
qs.stringify(data)可以解决data数据格式问题
npm install --save axios vue-axios qs
3、在main.js页面中引用:
import Vue from 'vue'
import axios from 'axios'
import qs from 'qs' Vue.prototype.$http = axios
Vue.prototype.qs = qs
4、在vue中使用
<script>
export default{
data(){
return {
msg:'axios使用'
}
},
created(){
this.axios({
method:'post',
url:'',
data:this.qs.stringify({
msg:this.msg
})
}).then((response)=>{
console.log(response)
})
}
}
</script>
以上是axios在vue中的简单应用,在实际的项目中,我们还需要考虑请求超时、是否登录等问题,这时需要在http请求中添加拦截器,在请求头中加token
下面是一个axios的工具interceptAxios.js
//http配置
//引入axios以及element ui 中的loading和message组件
import axios from 'axios'
import store from '../../store/store'
import * as types from '../../store/types'
import router from '../../routes'
import {Loading,Message} from 'element-ui'
//超时时间
axios.defaults.timeout = 500000
//http请求拦截器,在请求头中加token
var loadinginstace
axios.interceptors.request.use(config=>{
if (store.state.token) {
config.headers.Authorization = `${store.state.token}`
}
//element ui Loading方法
//loadinginstace = Loading.service({fullscreen:true})
return config
},error=>{
//loadinginstace.close()
Message.error({
message:'加载超时'
})
return Promise.reject(error)
})
//http响应拦截器
axios.interceptors.response.use(response=>{//响应成功关闭loading
//loadinginstace.close()
return response
},error=>{
if (error.response) {
switch (error.response.status) {
case 401:
// 401 清除token信息并跳转到登录页面
store.commit(types.LOGOUT)
store.commit(delPermission)
console.log("token无效----------------------------------")
// 只有在当前路由不是登录页面才跳转
router.currentRoute.path !== 'login' &&
router.replace({
path: 'login',
query: { redirect: router.currentRoute.path },
})
}
}
//loadinginstace.close()
Message.error({
message:'加载失败'
})
return Promise.reject(error)// 返回接口返回的错误信息
})
export default axios
在main.js中配置:
import Vue from 'vue'
import axios from './assets/js/interceptAxios'
import VueAxios from 'vue-axios'
import store from './store/store'
import Qs from 'qs' Vue.prototype.HOST="/api"//解决跨域问题,做一个反向代理
// 将axios挂载到prototype上,在组件中可以直接使用this.axios访问
Vue.prototype.$http=axios
Vue.prototype.qs=Qs
Vue.prototype.store = store Vue.use(VueAxios,axios)
在vue中应用:
<script>
export default {
data(){
return {
5 msg:''
6 }
},
methods:{
tool(data){
this.axios.post(this.HOST+'/vueHome/QueryTourOrigin.vue',this.qs.stringify(data))
.then(function(res){
12 console.log(res);
13 })
14 }
15 }
16 }
17 </script>
以上只是些简单的应用,应该还有更深层次的使用,待续......
axios在Vue中的简单应用(一)的更多相关文章
- axios在vue中的简单配置与使用
一.axios 简介 axios 是一个基于Promise 用于浏览器和 nodejs 的 HTTP 客户端,它本身具有以下特征:https://hzzly.github.io/2017/03/12/ ...
- axios 在vue中使用
下载组件: npm install axios --save npm install qs --save //处理对象防止产生跨域问题 引入: 新建axios文件夹,文件下新建index.js文件 i ...
- vue中超简单的方法实现点击一个按钮出现弹框,点击弹框外关闭弹框
效果图展示: View层 <template> <div> <div class="mask" v-if="showModal" ...
- vue中watch简单使用
watch是一个对象,具有键值对:键指被监听的数据,值指处理方式. 值类型包括以下三个: 第一个handler:其值是一个回调函数.即监听到变化时应该执行的函数. 第二个是deep:其值是true或f ...
- vue中简单的小插曲
我们现在来学习一下vue中一些简单的小东西: 首先我们必须要引入vue.js文件哦! 1.有关文本框里的checkbox js代码: new Vue({ el:"#app", da ...
- 微信 jssdk 逻辑在 vue 中的运用
微信 jssdk 在 vue 中的简单使用 import wx from 'weixin-js-sdk'; wx.config({ debug: true, appId: '', timestamp: ...
- vue中axios的简单使用
我们一般在用jq的时候会使用到ajax来进行与服务器之间的交流,vue中也提供了相应的类似于ajax的方法-axios来进行与服务器之间的数据传递 现在的这篇是最简单的使用,后续会添加上来复杂的使用 ...
- vue中axios的封装以及简单使用
一.axios的封装 在vue中为了使用axios使用方便,不需要每一个模块进行导入,就需要对其进行封装: 1.新建http.js模块 import axios from 'axios' // 设置基 ...
- vue中Axios的封装和API接口的管理
前端小白的声明: 这篇文章为转载:主要是为了方便自己查阅学习.如果对原博主造成侵犯,我会立即删除. 转载地址:点击查看 如图,面对一团糟代码的你~~~真的想说,What F~U~C~K!!! 回归正题 ...
随机推荐
- 点击startup.bat启动tomcat出现乱码
找到tomcat目录下的/conf/logging.properties添加语句:java.util.logging.ConsoleHandler.encoding = GBK重启tomcat 问题解 ...
- Golang GC 垃圾回收机制详解
摘要 在实际使用 go 语言的过程中,碰到了一些看似奇怪的内存占用现象,于是决定对go语言的垃圾回收模型进行一些研究.本文对研究的结果进行一下总结. 什么是垃圾回收? 曾几何时,内存管理是程序员开发应 ...
- 关于JavaScript的事件绑定
js事件绑定的几种方式 JavaScript中有三种常用的绑定事件方法: 1. 在DOM元素中直接绑定: 2. 在JavaScript代码中绑定: 3. 绑定事件佳妮婷函数. 一.在DOM元素中直接绑 ...
- 03 深入远程执行:target目标、模块modules、返回returns
0.学习目的 http://docs.saltstack.cn/topics/execution/index.html 官方文档 0.1 命令解释 [root@host---- ~]# salt ' ...
- 网络摘抄-深入浅出JVM调优
基本概念: JVM把内存区分为堆区(heap).栈区(stack)和方法区(method).由于本文主要讲解JVM调优,因此我们可以简单的理解为,JVM中的堆区中存放的是实际的对象,是需要被GC的.其 ...
- 小程序对于华为Oppo的canvas二维码渲染数据量大
setTimeout(()=>{ ctx.draw(false, function (e) { options.callback && options.callback(e); ...
- MessagePack Java 0.6.X 可选字段
你可添加一个新的字段来保持可用性.在新字段中使用 @Optional 注解. @Message public static class MyMessage { public String na ...
- TensorFlow使用记录 (十): Pretraining
上一篇的模型保存和恢复熟练后,我们就可以大量使用 pretrain model 来训练任务了 Tweaking, Dropping, or Replacing the Upper Layers The ...
- 微信小程序“反编译”
https://www.jianshu.com/p/ad8f417219e9 https://segmentfault.com/a/1190000018592740?utm_source=tag-ne ...
- R-seq()
seq(0, 1, length.out = 11) > seq(0, 1, length.out = 11) [1] 0.0 0.1 0.2 0.3 0.4 0.5 0.6 0.7 0.8 0 ...