zoukankan      html  css  js  c++  java
  • vue+axios 拦截器及使用

    axios是一个就promise的HTTP库,可以用在浏览器和node.js中

    main.js

    import Vue from 'vue'
    import axios from 'axios'
    
    // 使用拦截器
    // 添加请求拦截器 axios.interceptors.response.use( response
    => {
         // 在发送请求之前做些什么
    if (response.data.code && response.data.code === 401) { router.push({ path: '/login', }) Vue.prototype.$message.error("登录超时!"); } if (response.data && response.data.code && response.data.code !== 200) { Vue.prototype.$message.error(response.data.msg) } return response }, error => {
         // 对请求错误做些什么 let errorStatus
    = [401, 403] if (errorStatus.includes(error.response.status)) { local.remove('loginToken') router.push({ path: '/login', }) Vue.prototype.$message.error("登录超时!"); } else { Message({ message: error.message, type: 'error', duration: 5 * 1000 }) return Promise.reject(error) } return error } ); // 添加响应拦截器 axios.interceptors.request.use( config => {
         
    // 对响应数据做点什么 // 判断是否存在token,如果存在的话,则每个http header都加上token let token = local.get('loginToken') let conheaders = config.headers.common if (!Object.prototype.hasOwnProperty.call(conheaders, 'loginToken') && token) { conheaders["X-Admin-Token"] = token } return config; }, error => {
         // 对响应错误做点什么
    return Promise.reject(error); });

    调用axios

    api.js

    import axios from 'axios'
    
    const baseUrl="https://xxxxxx"
    
    export const test= (param) => {     
        return axios.request({
            method: 'post/put/delete',
            url: baseUrl + '/test/list',
            data: param
        })
    };
    
    export const test2= (param) => {     
        return axios.request({
            method: 'get',
            url: baseUrl  + '/test2/get/' + param,
        })
    };

    使用的时候

    test.vue

    <script>
    import {test} from "./api.js"
    import Swal from "sweetalert2";
    export default {
        data(){
            return{}
        },
        create:function(){
            this.testFun()
        },
        metiods:{
             testFun(){
               let params={}
               test(params)
                 .then(res=>{console.log(res.data)})  
                 .catch(reeor=>{Swal.fire("错误", error.toLocaleString(), "error");})
        }
    </script>
  • 相关阅读:
    the error about “no such file or directory”
    Unable to Distribute in Xcode5?
    第一次连接数据库mongodb踩的坑
    在Mac下安装mongodb
    sudo brew install mongodb报错
    nodemon 热更新
    npm install 之前做的事
    JS事件委托应用场景
    解决CDN传统方法引入Iview icon 不显示问题
    React 入门
  • 原文地址:https://www.cnblogs.com/yieix/p/14478675.html
Copyright © 2011-2022 走看看