下面通过一段代码给大家介绍Vue axios全局拦截 get请求、post请求、配置请求,具体代码如下所述:

<!DOCTYPE html>
<html lang=\"en\">
<head>
 <  charset=\"UTF-8\">
 < > </ >
 <  src=\"../node_modules/vue/dist/vue.js\"></ >
 <  src=\"../node_modules/axios/dist/axios.js\"></ >
 <  rel=\"stylesheet\" href=\"https://stackpath.bootstrapcdn.com/bootstrap/4.1.3/css/bootstrap.min.css\" integrity=\"sha384-MCw98/SFnGE8fJT3GXwEOngsV7Zt27NXFoaoApmYm81iuXoPkFOJwJ8ERdknLPMO\" crossorigin=\"anonymous\">
</head>
<body>
<div id=\"app\" class=\"container\">
 <h1>axios插件讲解</h1>
 <a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" class=\"btn btn-primary\" v-on:click=\"get\">Get请求</a>
 <a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" class=\"btn btn-primary\" v-on:click=\"post\">Post请求</a>
 <a href=\" :;\" rel=\"external nofollow\" rel=\"external nofollow\" rel=\"external nofollow\" class=\"btn btn-primary\" v-on:click=\"http\">http</a>
 <div>
 <span>{{this.msg}}</span>
 </div>
</div>
< >
 new Vue({
 el: \'#app\',
 data: {
  msg: \'\'
 },
 mounted () {
  // 请求拦截
  axios.interceptors.request.use(config => {
  return config
  },error => {
  return Promise.reject(error)
  })
  axios.interceptors.response.use(response => {
  // 预处理相应的数据
  return response
  }, error => {
  // 错误返回 状态码验证
  return Promise.reject(error)
  })
 },
 methods: {
  get () {
  axios.get(\'../package1.json\', {
   params: {
   userId: \'999\'
   },
   headers: {
   token: \'jack\'
   }
  }).then(res => {
   this.msg = res.data
  }).catch(error => {
   console.log(\'error init.\' + error)
  })
  },
  post () {
  axios.post(\'../package.json\', {
   userId: \'888\'
  },{
   headers: {
   token: \'tom\'
   }
  }).then(res => {
   this.msg = res.data
  }).catch(error => {
   console.log(\'error init.\' + error)
  })
  },
  http () {
  // 配置请求
  axios({
   url: \'../package.json\',
   method: \'get\',
   // if method is post
   data: {
   userId: \'101\'
   },
   // if method is get
   params: {
   userId: \'102\'
   },
   headers: {
   token: \'http-test\'
   }
  }).then(res => {
   this.msg = res.data
  }).catch(error => {
   console.log(\'error init.\' + error)
  })
  }
 }
 })
</ >
</body>
</html>

ps:下面看下vue axios数据请求get、post方法的使用

我们常用的有get方法以及post方法,下面简单的介绍一下这两种请求方法

vue中使用axios方法我们先安装axios这个方法

npm install --save axios

安装之后采用按需引入的方法,哪个页面需要请求数据就在哪个页面里引入一下。

import axios from \'axios\'

引入之后我们就可以进行数据请求了,在methods中创建一个方法

methods:{
 getInfo(){
  let url = \"url\"
  axios.get(url).then((res)=>{
   console.log(res)
  })  
 } 
}

然后我们在mounted这个生命周期中进行调用

 mounted(){
  this.getInfo() 
 }

这样就可以在控制台中查看数据,以上是一个简单的get方法数据请求,下面继续介绍一下post方法的使用,其实post和get的使用没有什么区别只是再加上一个参数就可以了,看一下我们的代码

methods:{
 postInfo(){
  let url = \"url\"
  let params=new URLSearchParams();//这个方法在axios的官网中有介绍,除了这个方法还有qs这个方法
  params.append(\"key\",index) 
  params.append(\"key\",index)
  axios.post(url,params).then((res)=>{
   console.log(res)
  })
 } 
}

同样在mounted这个生命周期中进行调用

 mounted(){
  this.postInfo()
 }

总结

以上所述是小编给大家介绍的Vue axios全局拦截 get请求、post请求、配置请求的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

收藏 打印