最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

vue攔截器及請求封裝代碼

 更新時間:2024年08月30日 14:39:17   作者:接口文帝  
這篇文章主要介紹了vue攔截器及請求封裝代碼,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

vue項(xiàng)目的src文件夾中創(chuàng)建request文件夾

(1)request文件夾中創(chuàng)建index.js

(攔截器主要代碼)

/**
 * 請求封裝
 */
 import axios from 'axios';
 import configUrl from './url.js';
//  import store from '../store';
 import cookies from "vue-cookies";
 import router from "../router/index"
 
 const service = axios.create({
     baseURL: configUrl.baseURL,
     // withCredentials: true, // 當(dāng)跨域請求時發(fā)送cookie
     timeout: 50000 // 請求超時
 });
 
 //添加請求攔截器   請求接口統(tǒng)一添加token
 service.interceptors.request.use(
     config =>{
        config.headers['PC-LOGIN-SESSION-ID'] = cookies.get('supplier_token')||''
        //  config.headers.PC-LOGIN-SESSION-ID = cookies.get('gys_token');  //請求添加token
         return config;
     },
     error =>{
         return Promise.reject(error);
     }
 )
 
 // 響應(yīng)攔截器
 service.interceptors.response.use(
     response => {
         //如果接口返回token,替換本地舊token
         if (response.headers.token) {
             sessionStorage.setItem("token", response.headers.token);
         }
         console.log('攔截器響應(yīng)',response)

        
            //自定義設(shè)置后臺返回code對應(yīng)的響應(yīng)方式
            if (response.data.code == 0) { // 請求成功
                return response.data;
            } else if(response.data.code == 100){ //token過期
                router.app.$router.push({ path: '/login' })
                return response.data;
           // router.app.$router.replace('/login')
           //  return Promise.reject(new Error('登錄超時'));
           // console.log(router)
            }else{
                return response.data;
            }
            // return response.data;
         


         
     },
     error => {
         if (error.message) {
                 // this.$massage.error('服務(wù)器開小差了,請稍后再試!')   
                 //錯誤響應(yīng)
                 alert('服務(wù)器開小差了,請稍后再試!')   
         }
         return Promise.reject(error);
     }
 );
 //暴露出封裝過的服務(wù)
 export default service;

(2)request文件夾下創(chuàng)建url.js文件

(域名地址的配置,按照不同環(huán)境請求域名不同)

const VUE_APP_MODE = process.env.VUE_APP_MODE;
let baseURL;
if (VUE_APP_MODE == 'development') { // 本地
    baseURL = 'http://127.0.0.1:8888';//測試地址
} else {
    // pre 預(yù)生產(chǎn)
    // prod 生產(chǎn)
    switch (VUE_APP_MODE) {
        case 'test':// 測試
            baseURL = 'http://test.com/api';
            break;
        case 'pre':// 預(yù)生產(chǎn)
            baseURL = 'http://pre.com';
            break;
        case 'prod':// 生產(chǎn)
            baseURL = 'http://prod.com';
            break;
        default:// 測試
            baseURL = 'http://develop.api.center.tuanhaocai.com';
            // baseURL = 'http://192.168.2.207:8088';//本地
            break;
    }
}
module.exports = {
    baseURL
};

(3)request文件夾下創(chuàng)建api.js文件

//引入上邊封裝的axios文件
import request from "@/request";
import qs from "qs";  

// 用戶獲取驗(yàn)證碼
export const getCode = data => {
    return request({
        url: "/common/sms/send?"+qs.stringify(data),
        method: "GET",
        headers:{
            "content-type": "application/json;charset=UTF-8"
        },
    });
};
// 用戶退出登錄
export const loginOut = data => {
    return request({
        url: "/supplier/user/logout?"+qs.stringify(data),
        method: "GET",
        headers:{
            "content-type": "application/json;charset=UTF-8"
        },
    });
};
//用戶修改密碼  post請求
export const update_password = data => {
    return request({
        url: "/supplier/user/updatePassword",
        method: "POST",
        headers:{
            "content-type": "application/json;charset=UTF-8"
        },
        data
    });
};

//用戶登錄(密碼登錄)  post請求
export const login_rq = data => {
    return request({
        url: "/supplier/user/loginForPas",
        method: "POST",
        headers:{
            "content-type": "application/json;charset=UTF-8"
        },
        data
    });
};
//用戶登錄(驗(yàn)證碼登錄)  post請求
export const login_code = data => {
    return request({
        url: "/supplier/user/loginForCode",
        method: "POST",
        headers:{
            "content-type": "application/json;charset=UTF-8"
        },
        data
    });
};

//下載用戶上傳模板   get請求
export const downLoadTemplate = params=> {
    return request({
        url: "/user/info/template",
        method: "GET",
        headers:{
            "content-type": "application/json;charset=UTF-8"
        },
        params
    });
};

(4)補(bǔ)充說明啟動環(huán)境問題

(request文件夾下創(chuàng)建url.js文件如何配置啟動環(huán)境不同域名不同問題)

在配置文件package.json中配置啟動命令(可以自己隨意起名)

  "scripts": {
    "serve": "vue-cli-service serve --open",
    "dev": "vue-cli-service serve --open --mode dev",
    "test": "vue-cli-service build --mode test",
    "build": "vue-cli-service build --mode production",
    "lint": "vue-cli-service lint"
  },

示例圖:

以上配置完以后需要在項(xiàng)目根目錄增加自定義啟動文件配置 (如配置文件中有"test": “vue-cli-service build --mode test”,則要增加.env.test)

如圖示例:

.env.test文件中代碼如下:

NODE_ENV='test'
VUE_APP_MODE='test'

<-------引用------->

import { loginOut, update_password } from "@/request/api";

總結(jié)

以上為個人經(jīng)驗(yàn),希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • el-table表格排序(多列排序和遠(yuǎn)程排序)

    el-table表格排序(多列排序和遠(yuǎn)程排序)

    本文主要介紹了el-table表格排序(多列排序和遠(yuǎn)程排序),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-05-05
  • vue中三種不同插槽使用小結(jié)

    vue中三種不同插槽使用小結(jié)

    本文主要介紹了vue中三種不同插槽使用小結(jié),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2023-07-07
  • 初學(xué)vue出現(xiàn)空格警告的原因及其解決方案

    初學(xué)vue出現(xiàn)空格警告的原因及其解決方案

    今天小編就為大家分享一篇初學(xué)vue出現(xiàn)空格警告的原因及其解決方案,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-10-10
  • Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲操作

    Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲操作

    這篇文章主要介紹了Vuex的插件vuex-persistedstate數(shù)據(jù)持久化存儲操作,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友參考下吧
    2023-12-12
  • Vue實(shí)現(xiàn)路由懶加載的詳細(xì)步驟

    Vue實(shí)現(xiàn)路由懶加載的詳細(xì)步驟

    路由懶加載是指在用戶實(shí)際訪問某個特定路由時,才加載該路由相關(guān)組件的機(jī)制,這種方式可以顯著減少初始加載時的 JavaScript 文件大小,從而提高應(yīng)用的加載速度,所以本文給大家介紹了Vue實(shí)現(xiàn)路由懶加載的詳細(xì)步驟,需要的朋友可以參考下
    2024-11-11
  • vue與electron實(shí)現(xiàn)進(jìn)程間的通信詳情

    vue與electron實(shí)現(xiàn)進(jìn)程間的通信詳情

    這篇文章主要介紹了vue與electron實(shí)現(xiàn)進(jìn)程間的通信詳情,本文主要介紹electron渲染進(jìn)程和主進(jìn)程間的通信,以及在渲染進(jìn)程和主進(jìn)程中常用的配置項(xiàng),需要的朋友可以參考一下
    2022-09-09
  • 關(guān)于element-ui日期時間選擇器選不中12小時以后的時間詳解

    關(guān)于element-ui日期時間選擇器選不中12小時以后的時間詳解

    在之前做個一個組件頁面中,引用了element-ui組件的日期選擇器,遇到的一個小問題,下面這篇文章主要給大家介紹了關(guān)于element-ui日期時間選擇器選不中12小時以后時間的相關(guān)資料,需要的朋友可以參考下
    2022-08-08
  • vue+elementUI實(shí)現(xiàn)表單和圖片上傳及驗(yàn)證功能示例

    vue+elementUI實(shí)現(xiàn)表單和圖片上傳及驗(yàn)證功能示例

    這篇文章主要介紹了vue+elementUI實(shí)現(xiàn)表單和圖片上傳及驗(yàn)證功能,結(jié)合實(shí)例形式分析了vue+elementUI表單相關(guān)操作技巧,需要的朋友可以參考下
    2019-05-05
  • defineProperty和Proxy基礎(chǔ)功能及性能對比

    defineProperty和Proxy基礎(chǔ)功能及性能對比

    這篇文章主要為大家介紹了defineProperty和Proxy基礎(chǔ)功能及性能對比,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-08-08
  • vue 引入公共css文件的簡單方法(推薦)

    vue 引入公共css文件的簡單方法(推薦)

    下面小編就為大家分享一篇vue 引入公共css文件的簡單方法(推薦),具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-01-01

最新評論

恩施市| 兴文县| 三门县| 嘉兴市| 凤城市| 桑日县| 邵武市| 乐都县| 淮安市| 会泽县| 香港 | 仲巴县| 长子县| 东光县| 洛宁县| 永修县| 公安县| 雷山县| 贺兰县| 萨迦县| 丰顺县| 周口市| 合肥市| 云龙县| 东乡县| 射阳县| 卓资县| 广东省| 伊宁市| 高陵县| 肥西县| 石柱| 同心县| 靖江市| 莎车县| 衡东县| 明水县| 广河县| 淮阳县| 尼玛县| 五家渠市|