JavaScript

超轻量级php框架startmvc

Vue axios全局拦截 get请求、post请求、配置请求的实例代码

更新时间:2020-08-06 21:36:01 作者:startmvc
下面通过一段代码给大家介绍Vueaxios全局拦截get请求、post请求、配置请求,具体代码如下所

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


<!DOCTYPE html>
<html lang="en">
<head>
 <meta charset="UTF-8">
 <title>Title</title>
 <script src="../node_modules/vue/dist/vue.js"></script>
 <script src="../node_modules/axios/dist/axios.js"></script>
 <link 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="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn btn-primary" v-on:click="get">Get请求</a>
 <a href="javascript:;" rel="external nofollow" rel="external nofollow" rel="external nofollow" class="btn btn-primary" v-on:click="post">Post请求</a>
 <a href="javascript:;" 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>
<script>
 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)
 })
 }
 }
 })
</script>
</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请求、配置请求的实例代码,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

vue axios get post vue axios全局拦截