• <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <small id="ggggg"></small> <sup id="ggggg"></sup>
    <noscript id="ggggg"><dd id="ggggg"></dd></noscript>
    <tfoot id="ggggg"></tfoot>
  • <nav id="ggggg"><cite id="ggggg"></cite></nav>
    <nav id="ggggg"></nav>
    成人黃色A片免费看三更小说,精品人妻av区波多野结衣,亚洲第一极品精品无码,欧美综合区自拍亚洲综合,久久99青青精品免费观看,中文字幕在线中字日韩 ,亚洲国产精品18久久久久久,黄色在线免费观看

    Vue 中 axios 攔截器的封裝

    2019-12-4    seo達人

    在vue項目中,和后臺交互獲取數據這塊,我們通常使用的是axios庫,它是基于promise的http庫,可運行在瀏覽器端和node.js中。他有很多優秀的特性,例如攔截請求和響應、取消請求、轉換json、客戶端防御cSRF等。

    一 . 安裝



    npm install axios;

    1

    二 . 引入

    在項目的src目錄中,新建一個request文件夾,然后在里面新建一個http.js和一個api.js文件。http.js文件用來封裝我們的axios,api.js用來統一管理我們的接口。

    三 . 開始封裝



    在http.js中引入axios . vue及其他

    import Axios from 'axios'; // 引入axios

    import { Message, Loading, Notification } from 'element-ui'

    import vue from 'vue';

    1

    2

    3

    http.js文件全部代碼如下:



    import Axios from 'axios';

    import store from '../store';

    import { Message, Loading, Notification } from 'element-ui'

    import vue from 'vue';

    // 環境的切換

    if (process.env.NODE_ENV == 'development') {

      Axios.defaults.baseURL = "http://10.230.39.58:33390/devops";

    }

    else if (process.env.NODE_ENV == 'production') {

      Axios.defaults.baseURL = "http://10.230.39.58:33390/devops";

    }

    // request請求攔截器

    Axios.defaults.withCredentials = true

    vue.prototype.$axios = Axios

    //請求超時時間

    // Axios.defaults.timeout = 100000;

    Axios.defaults.headers.get['Content-Type'] = "application/json"

    Axios.interceptors.request.use(config => {

      const Basic = sessionStorage.getItem("basicParam")

      if (Basic) {

        config.headers.Authorization = Basic ${Basic};

      } else {

        console.log("無校驗值");

      }

      return config;

    }, error => {

      Promise.reject(error);

    })

    // respone返回攔截器

    Axios.interceptors.response.use(

      response => {

        if (response.data.code !== 200) {

          Notification.error({

            title: '錯誤',

            message: response.data.message

          });

        }

        return response.data;

      }, error => {

        // Notification.error({

        //   title: '錯誤',

        //   message: '系統異常'

        // });

        console.log('err' + error);// for debug

        return Promise.reject(error);

      }

    )



    export default Axios;



    1

    2

    3

    4

    5

    6

    7

    8

    9

    10

    11

    12

    13

    14

    15

    16

    17

    18

    19

    20

    21

    22

    23

    24

    25

    26

    27

    28

    29

    30

    31

    32

    33

    34

    35

    36

    37

    38

    39

    40

    41

    42

    43

    44

    45

    46

    47

    48

    49

    50

    api.js文件全部代碼如下:



    import axios from 'axios';

    /

      封裝get方法

     
    @param url

      @param data

     
    @returns {Promise}

     */



    export function fetch(url, params = {}) {

      return new Promise((resolve, reject) => {

        axios.get(url, {

          params: params

        })

          .then(response => {

            resolve(response.data);

          })

          .catch(err => {

            reject(err)

          })

      })

    }





    /*

     
    封裝post請求

      @param url

     
    @param data

      @returns {Promise}

     
    /



    export function _post(url, data = {}) {

      return new Promise((resolve, reject) => {

        axios.post(url, data)

          .then(response => {

            console.log(response,

              "response");



            resolve(response);

          }, err => {

            reject(err)

          })

      })

    }



    /

    • 封裝patch請求
    • @param url
    • @param data
    • @returns {Promise}

      */



      export function patch(url, data = {}) {

        return new Promise((resolve, reject) => {

          axios.patch(url, data)

            .then(response => {

              resolve(response.data);

            }, err => {

              reject(err)

            })

        })

      }



      /**
    • 封裝put請求
    • @param url
    • @param data
    • @returns {Promise}

      */



      export function put(url, data = {}) {

        return new Promise((resolve, reject) => {

          axios.put(url, data)

            .then(response => {

              resolve(response.data);

            }, err => {

              reject(err)

            })

        })

      }



      在main.js中引入api.js



      import { _post, fetch, patch, put } from './utils/api'

      //定義全局變量

      Vue.prototype.$post = post;

      Vue.prototype.$fetch = fetch;

      Vue.prototype.$patch = patch;

      Vue.prototype.$put = put;

      1

      2

      3

      4

      5

      6

      最后在組件里直接使用



       this.$post('/api/v2/movie/top250')

            .then((response) => {

              console.log(response)

            })

            



      其他方法用法相同




    日歷

    鏈接

    個人資料

    藍藍設計的小編 http://www.lzhte.cn

    存檔

    主站蜘蛛池模板: 亚洲一级毛片在线播放| 亚洲熟女av一区二区| 久久精品一卡日本电影| 亚洲黄色三级在线观看| 国产精品久久久久一区二区三区| 无码中文字幕加勒比一本二本| 日本乱人伦AⅤ精品| 久久久成人毛片无码| 少妇久久久久久人妻无码| 在线观看国产久青草| 国产成人国产在线观看| 亚洲综合精品一区二区三区中文| 久久99精品久久久久久国产人妖| 欧美日韩亚洲中文字幕二区| 日韩亚洲一区在线二区| 午夜福利日本| 国产在线97色永久免费视频| 美日韩一区二区综合在线视频| 久久国产精品无套专区| 国产精品青青青高清在线| 午夜福利一区| 国产精品自拍露脸视频| 欧美大肚子孕妇疯狂作爱视频| 国产成人欧美日韩在线电影| 台中市| 久久精品国产999大香线焦| 老湿机看片新入口福利| 人妻被猛烈进入中文字幕| 欧美韩中文精品有码视频在线| 国产免费人成在线视频app| 开心婷婷五月激情综合社区| 久热在线精品免费视频| 国产精品久久无码免费看| 五月丁香天堂| 久久午夜福利| 音影先锋色天堂av电影妓女久久| 永久免费无码日韩视频| 人妻丰满熟av无码区hd| 久久人妻无码一区二区| 精品一区二区三区无码视频| 国产自偷亚洲精品页35页|