VUE全局導航守衛、 請求、響應攔截器 的設置

文件設置參考地址:https://gitee.com/wang_yu5201314/headlines__news/tree/master/%E9%A1%B9%E7%9B%AE%E6%BA%90%E7%A0%81%E6%96%87%E4%BB%B6/src

文件夾 Router 文件夾 index.js 中設置 全局導航守衛
文件 mian.js 中設置 請求、響應攔截器

設置 請求、響應攔截器

// ************************* axios **************************************

import axios from 'axios'axios.defaults.baseURL = 'http://localhost:3000'
Vue.prototype.$axios = axios

// 請求攔截器

axios.interceptors.request.use(config => {// 攔截請求 , 給每個需要token請求的地方添加tokenlet token = localStorage.getItem('token')if (token) {config.headers.Authorization = token}return config
})

// 響應攔截器

axios.interceptors.response.use(res => {// console.log('響應被截胡了', res)const { message, statusCode } = res.dataif (message === '用戶信息驗證失敗' && statusCode === 401) {// 1. 提示Toast.fail('token失效')// 2. 刪除本地token 和 user_idlocalStorage.removeItem('token')localStorage.removeItem('user_id')// 3. 跳轉 login// router.push('/login')router.push({name: 'login',params: {back: true,},})}return res
})

VUE全局導航守衛

// 全局導航守衛
// 說明 : 只要路由改變了就會走導航守衛 ( /login  => /user )
// to   : 將要訪問哪里   ($route路由對象 to.path)  ★
// from : 從哪里來       ($route路由對象 from.path)
// next : 是否放行
//        next()  => 直接放行     ★
//        next(false)  => 不放行
//        next('/login')  => 像重定向 => 放行 => 去 /login  ★
router.beforeEach((to, from, next) => {// console.log('to', to.path)let token = localStorage.getItem('token')// 把需要攔截未登錄訪問的權限頁面 全部都加到數組里面let autlUrlArr = ['/user', '/myfollow', '/mycomments', '/mystar']// 如果訪問的是 /user  => 繼續判斷// if(to.path === '/user' || to.path)// if (autlUrlArr.indexOf(to.path) > -1) {if (autlUrlArr.includes(to.path)) {// 如果登錄了 可以訪問if (token) {next()} else {// 如果沒有登錄 跳轉到登錄頁面next('/login')}} else {// 如果訪問的是 /login  /register  => 永遠可以next()}
})

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/247902.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/247902.shtml
英文地址,請注明出處:http://en.pswp.cn/news/247902.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

JRE System Library和 Referenced Libraries 的區別和來源

JRE System Library 安裝jdk后,會有個目錄叫做jrejre目錄是核心類庫,目錄中裝的是類庫文件jre System Library顧名思義就表示系統類庫文件 Referenced Libraries referenced libraries放的是你引用的jar包,這個不需要自己創建的,你…

ByteArray、16進制、字符串之間的轉換

ByteArray、16進制、字符串之間的轉換: package fengzi.convert {import flash.utils.ByteArray;public class ByteArrayTranslated{/**** 通過hax數據返回ByteArray* param hax 格式 "AA5A000100FF"***/public static functi…

js - (初中級)常見筆試面試題

1.用 js 實現一個深拷貝 2.用 js 寫一個數組去重 3. 用 js 對字符串進行反轉 4. 用 js 請求范圍內的質數個數 5.用 js 求數組中出現最多的數及其出現次數

iOS 支付寶SDK接入詳解

一,在支付寶開放平臺下載支付寶SDK(https://openhome.alipay.com/platform/document.htm#down) https://doc.open.alipay.com/doc2/detail.htm?spma219a.7629140.0.0.HpDuWo&treeId54&articleId104509&docType1 二,添…

面試基本知識點

文章目錄面-什么是SEO面 - cookie / localstorage / sessionstorage的區別面 - promise面試題面 - 柯里化函數面 - 函數節流面 - 函數防抖HTML / CSS 知識點1、講講盒模型(螞蟻金服 2019.03 招行信用卡 2019.04 美團 作業幫)2、根據盒模型解釋邊距重疊&a…

Redis 熱點key

壓測報redis 熱點問題 熱點問題概述 產生原因 熱點問題產生的原因大致有以下兩種: 用戶消費的數據遠大于生產的數據(熱賣商品、熱點新聞、熱點評論、明星直播)。 在日常工作生活中一些突發的的事件,例如:雙十一期間某些…

移動IM開發那些事:技術選型和常見問題

最近在做一個iOS IM SDK,在內部試用的階段,不斷有兄弟部門或者合作伙伴過來問各種技術細節,所以統一寫一篇文章記錄,統一介紹下一個IM APP的方方面面,包括技術選型(包括通訊方式,網絡連接方式,協議選擇)和常見問題。 …

webstrom打開通過頂部瀏覽器打開網頁,被跳轉到默認主頁

重新開始工作啦,希望以后認真一點,并把遇到的問題都記錄下來,雖然是小小白,但能無意間幫助到別人就更開心了呀 通過webstrom打開本地的文件時,發現跳轉到了默認主頁上,吐槽下,有些主頁真的超級流…

mockjs(接口服務代理)

mock官網:http://mockjs.com/ 一、搭建一個練習項目 1.利用vue的項目腳手架進行搭建 命令: vue create mock-demo 截圖: 2.安裝相關的依賴 命令: #使用 axios 發送 ajax npm install axios --save #使用 mock.js 產生隨機數據…

MD5算法原理

MD5(單向散列算法) 的全稱是Message-Digest Algorithm 5(信息-摘要算法),經MD2、MD3和MD4發展而來。MD5算法的使用不需要支付任何版權費用。MD5功能:輸入任意長度的信息,經過處理,輸…

函數-函數進階-裝飾器流程分析

老王:算了,估計你也想不出來。。。學過嵌套函數沒有? 你:yes,然后呢? 老王:想實現一開始你寫的america login(america)不觸發你函數的執行,只需要在這個login里面再定義一層函數&am…

制作手寫簽名

<!DOCTYPE html> <!-- saved from url(0056)http://hao2013.cn/canvas-special-master/brush/index.html --> <html><head><meta http-equiv"Content-Type" content"text/html; charsetUTF-8"><title>簽名板(支持移動…

python第五次作業——陳靈院

習題1&#xff1a;讀入文件pmi_days.csv&#xff0c;完成以下操作&#xff1a;1.統計質量等級對應的天數&#xff0c;例如&#xff1a;優&#xff1a;5天良&#xff1a;3天中度污染&#xff1a;2天2.找出PMI2.5的最大值和最小值&#xff0c;分別指出是哪一天。 import csv impo…

iOS 二叉樹相關算法實現

什么是二叉樹&#xff1f; 在計算機科學中&#xff0c;二叉樹是每個節點最多有兩個子樹的樹結構。通常子樹被稱作“左子樹”和“右子樹”&#xff0c;左子樹和右子樹同時也是二叉樹。二叉樹的子樹有左右之分&#xff0c;并且次序不能任意顛倒。二叉樹是遞歸定義的&#xff0c;所…

vux 組件庫首次使用安裝

1、首先通過腳手架新建一個項目&#xff0c;過程略。 創建完項目后&#xff0c;在項目里安裝vux&#xff0c; 通過命令 npm install vux --save 安裝 2、安裝vux-loader&#xff0c; 通過命令 npm install vux-loader --save-dev 安裝&#xff08;vux文檔沒說明&#xff09; 3、…

@Component 和 @Bean 的區別

Spring幫助我們管理Bean分為兩個部分&#xff0c;一個是注冊Bean&#xff0c;一個裝配Bean。完成這兩個動作有三種方式&#xff0c;一種是使用自動配置的方式、一種是使用JavaConfig的方式&#xff0c;一種就是使用XML配置的方式。 Compent 作用就相當于 XML配置 Component pub…

js動態驗證碼獲取

<!DOCTYPE html> <html lang"cn"> <head><meta charset"UTF-8"><title>短信驗證碼</title> </head> <body> <input type"number" id"tel" value"13303861063"> <…

Base64 算法原理,以及編碼、解碼【加密、解密】 介紹

Base64編碼&#xff0c;是我們程序開發中經常使用到的編碼方法。它是一種基于用64個可打印字符來表示二進制數據的表示方法。它通常用作存儲、傳輸一些二進制數據編碼方法&#xff01;也是MIME&#xff08;多用途互聯網郵件擴展&#xff0c;主要用作電子郵件標準&#xff09;中…

js通過身份證獲取年齡

// 獲取用戶的身份證號碼let identityCard this.idNum.replace(/\s/g, "");//判斷長度let len identityCard.length;//設置新的變量var strBirthday "";//根據長度獲取年月日if (len 18) {strBirthday identityCard.substr(6, 4) "/" identi…

爬取豆瓣top250

#xpath #第一種方法 可在開發者工具中找到標簽&#xff0c;右鍵copy xpath&#xff0c;有時需去掉tbody標簽 #第二種方法 簡單學習xpath&#xff0c;自己書寫&#xff0c;掌握基本語法即可&#xff0c;簡單的層級關系#先將csv文件以記事本打開&#xff0c;更改編碼為ASNI&…