vue+axios全局添加請(qǐng)求頭和參數(shù)操作
走登錄的接口都會(huì)返回一個(gè)token值,然后存起來(lái)方便之后調(diào)接口的時(shí)候給后臺(tái)傳過去,傳給后臺(tái)的方式有兩種:(具體使用哪種需要和后臺(tái)商量)
1、放在請(qǐng)求頭中
2、放在接口的參數(shù)中
1、放在請(qǐng)求頭中
下面代碼是從本地cookie中拿token
VueCookie:一個(gè)用于處理瀏覽器cookies的簡(jiǎn)單Vue.js插件.
// 在封裝axios的文件中添加攔截器// 添加請(qǐng)求攔截器,在請(qǐng)求頭中加tokenservice.interceptors.request.use( config => { // 判斷本地的cookie中是否有token if (VueCookie.isKey(’token’)) { config.headers.Authorization = VueCookie.get(’token’) } else { // 跳轉(zhuǎn)到登錄頁(yè)面(這里使用router,是因?yàn)槁酚晌募氲搅舜宋募? router.push(’/login’) } return config }, error => { return Promise.reject(error) })
這個(gè)時(shí)候雖然在請(qǐng)求頭中放了token,但是后臺(tái)并拿不到token的值,我們需要在創(chuàng)建axios對(duì)象的時(shí)候允許請(qǐng)求攜帶cokie,也可以加到main.js全局里面。
// 放在請(qǐng)求文件中const service = axios.create({ baseURL: 'http://XXXXXXXXX:XXXX', timeout: 10000, withCredentials: true // 允許攜帶cookie});
// 放在全局main.js中import axios from 'axios';axios.defaults.withCredentials = true; // 允許攜帶cookie
2、放在參數(shù)中
以下代碼是從本地存儲(chǔ)localStorage中拿token
// 添加請(qǐng)求攔截器,在參數(shù)中加tokenservice.interceptors.request.use( config => { // 將token添加到每一個(gè)接口的參數(shù)中 // 判斷請(qǐng)求的類型:如果是post請(qǐng)求就把默認(rèn)參數(shù)拼到data里面;如果是get請(qǐng)求就拼到params里面 const token = localStorage.getItem(’ISTOKEN’) if (localStorage.getItem(’ISTOKEN’)) { // 注意:config.method 的判斷值必須是小寫的post和get if (config.method === ’post’) { config.data = { api_token: token, ...config.data } } else if (config.method === ’get’) { config.params = { api_token: token, ...config.params } } } else { // 跳轉(zhuǎn)到登錄頁(yè)面(這里使用router,是因?yàn)槁酚晌募氲搅舜宋募? router.push(’/login’) } return config }, error => { return Promise.reject(error) })
補(bǔ)充知識(shí):Vue,POST請(qǐng)求頭’Content-Type’:’application/json;’,data上傳方法
如下所示:

transformRequest 方法說(shuō)明axios中文文檔
以上這篇vue+axios全局添加請(qǐng)求頭和參數(shù)操作就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持好吧啦網(wǎng)。
相關(guān)文章:
1. Java如何基于反射機(jī)制獲取不同的類2. Vuex localStorage的具體使用3. Vue封裝一個(gè)TodoList的案例與瀏覽器本地緩存的應(yīng)用實(shí)現(xiàn)4. python+excel接口自動(dòng)化獲取token并作為請(qǐng)求參數(shù)進(jìn)行傳參操作5. asp判斷某個(gè)文件是否存在的函數(shù)6. IntelliJ IDEA安裝插件的方法步驟7. Android table布局開發(fā)實(shí)現(xiàn)簡(jiǎn)單計(jì)算器8. 在IDEA中實(shí)現(xiàn)同時(shí)運(yùn)行2個(gè)相同的java程序9. PHP安全-遠(yuǎn)程文件風(fēng)險(xiǎn)10. python 5個(gè)頂級(jí)異步框架推薦

網(wǎng)公網(wǎng)安備